Файлы PID могут создаваться самим процессом или вспомогательной программой, которая записывает файл PID после запуска основной программы.
В системах типа Unix -новые программы часто создаются с использованием системных вызовов fork()
и exec()
. fork()
создает копию вызывающего процесса, возвращая идентификатор дочернего процесса (PID )в родительском и 0 в дочернем. Вспомогательная программа )родительского процесса (может сохранять PID в файле PID. Затем exec()
используется для запуска новой программы.
Процесс может получить свой собственный PID с помощью системного вызова getpid()
и затем сохранить его в файл.
Если вы запускаете программу из оболочки, вы можете использовать вспомогательную программу, такую какstart-stop-daemon
(в системе на основе Debian -), которая может записывать файл PID после запуска программы. Если ваша программа демонизирует себя, вы также можете сохранить PID из оболочки, обратившись к переменной $$
.