Как получить pid демона Linux, выполненного от init.d

Я запустил сервисного демона, путем выполнения двоичного файла (записанный в C++) через файл сценария сохранил rc5.d.

Но я не уверен, как получить pid процесса демона и сохранить его в изодромном с предварением файле в/var/run/.pid. Так, чтобы я мог использовать pid для завершения. Как я могу сделать это?

5
задан Poorna 29 April 2010 в 08:54
поделиться

3 ответа

Попробуйте использовать start-stop-daemon (8) с аргументом - pidfile в вашем сценарии инициализации . Пусть ваша программа записывает свой PID в указанное место (обычно определяется в файле конфигурации).

Вам следует обратить внимание на устаревшие файлы PID, например, если файл блокировки сохранялся после перезагрузки. Эту логику лучше всего реализовать в самом сценарии инициализации, отсюда и параметр - exec для start-stop-daemon .

Например, если /var/run/foo.pid равно 1234 , а / proc / 1234 / exe не ваша служба, блокировка Файл устарел и должен быть тихо удален, чтобы служба запустилась в обычном режиме.

Что касается вашего приложения, просто убедитесь, что местоположение файла блокировки настраивается, и существуют некоторые средства, чтобы сообщить сценарию инициализации, куда его поместить.

Например: (пример: / etc / default / foo):

PIDFILE=/var/run/foo.pid
OTHEROPTION=foo

Затем в /etc/init.d/foo:

[ -f /etc/default/foo ] && . /etc/default/foo

Опять же, кроме последовательной записи в файл, вся эта логика должна быть обрабатывается вне вашего приложения.

8
ответ дан 13 December 2019 в 22:03
поделиться

Вы можете использовать несколько способов:

  1. В вашей программе используйте getpid , чтобы записать его в настраиваемый файл (возможно, просматривая ENV)
  2. Используйте $! после запуска программы (у меня это не работает в Archlinux: -?)
  3. После запуска программы используйте pidof
1
ответ дан 13 December 2019 в 22:03
поделиться

Если вам известен порт, открытый программой, используйте команду fuser , чтобы определить pid.

1
ответ дан 13 December 2019 в 22:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: