Os arquivos PID podem ser criados pelo próprio processo ou por um programa auxiliar, que grava um arquivo PID depois de iniciar o programa principal.
Em sistemas semelhantes ao Unix, os novos programas geralmente são criados usando fork()
e exec()
chamadas do sistema. fork()
cria uma cópia do processo de chamada, retornando o ID do processo (PID) da criança no pai e 0 no filho. O processo pai (programa auxiliar) pode salvar o PID em um arquivo PID. exec()
é então usado para iniciar o novo programa.
O processo pode obter seu próprio PID usando a chamada de sistema getpid()
e, em seguida, salva-o em um arquivo.
Se você está iniciando um programa a partir do shell, você pode usar um programa auxiliar como start-stop-daemon
(se estiver em um sistema baseado no Debian), que pode escrever um arquivo PID depois de iniciar o programa. Se o seu programa se demoniza, você também pode armazenar o PID a partir do shell acessando a variável $$
.