2

Я читаю документацию на руководителя, и это цитаты:

Часто бывает трудно получить точное состояние вверх / вниз для процессов в UNIX. Pidfiles часто врут. Supervisord запускает процессы как подпроцессы, поэтому он всегда знает истинное состояние вверх / вниз своих дочерних процессов и может быть удобно запрошен для этих данных.

  1. Не мог ли статус процесса быть получен просто ps? (или здесь проблема в том, что пользователь, запрашивающий состояние процесса, не обязательно должен иметь полный доступ к ps)
  2. Каковы проблемы с файлами pid (например: часто ли службы оставляют файл pid после сбоя)?

2 ответа2

1

Да, вы можете использовать PS. Но часто программы, предоставляющие службы, запускаются в фоновом режиме и / или запускаются во время загрузки, поэтому для удобства запускается сценарий оболочки, который запускает их в pid-файле.

Известно, что паразитные pid-файлы оставляются после смерти программы, поэтому полагаться на один pid-файл может быть непросто.

1
  1. Доступно только конечное число идентификаторов PID, поэтому ваш процесс может (хотя и маловероятно) завершиться, а затем запустить совершенно другой процесс с тем же PID. Чтобы убедиться, что вы просматриваете правильный процесс с помощью ps вам также нужно проверить время запуска, но кто беспокоится об этом?
  2. Pid-файл обычно управляется сценарием rc, а не самим процессом, и, как вы подозреваете, они могут остаться позади при сбое процесса или сервера. Затем нужно как-то решить, что pid-файл можно безопасно удалить, возможно, с помощью ps для поиска процесса с этим PID. Но, см. Пункт 1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .