start-stop-daemon --start --pidfile "$pid"
não grava no arquivo pid, a menos que --make-pidfile
( -m
) seja especificado. Sem --make-pidfile
, cabe ao programa ser lançado para criá-lo. Também para --make-pidfile
funcionar, o processo que está sendo iniciado não pode se daemonizar sozinho (por meio de uma bifurcação), pois, em seguida, start-stop-daemon
não saberá qual PID deve colocar no arquivo.
A única coisa que o --pidfile "$pid"
faz no seu cenário de uso é que isso resultará em start-stop-daemon
não iniciar o programa se ele já estiver em execução.
Se o processo ainda não estiver sendo interrompido, todos os critérios passados para start-stop-daemon --stop
deverão corresponder. O significado $pid
deve ser um processo em execução, o UID do processo deve corresponder a $user
e o nome do processo (arg0) deve corresponder a $name
.
Você pode determinar o valor de arg0 fazendo ps h -p $pid -o comm