Каково надлежащее, что завершить сценарий с помощью start-stop-daemon?

Я использую start-stop-daemon для создания сценария INIT для моего сценария. Я использую - делают-pidfile причину, мой сценарий не делает свой собственный pid. Я могу запустить, мое использование сценария запускаются, и изодромный с предварением файл генерирует с соответствующим PID. Но функция остановки не работает. Согласно start-stop-daemon руководству,

- остановите Проверки на существование указанного процесса. Если такой процесс существует, start-stop-daemon отправляет ему сигнал, указанный - сигнал, и выходит с ошибочным состоянием 0. Если такой процесс не существует, start-stop-daemon выходы с ошибочным состоянием 1 (0, если - oknodo указан). Если - повторная попытка будет указана, то start-stop-daemon проверит, что процесс (процессы) завершился.

Я не нашел, находят, что любая документация для - сигнализируется. Как то, как указать - сигнализируют, хочу ли я отправить SIGTERM.

case "$1" in
  start|debug)
        log_daemon_msg "Starting $DESC: $NAME"
        start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE \
                --exec $DAEMON || log_failure_msg " already running"
        log_end_msg 0
        ;;
  stop)
        log_daemon_msg "Stopping $DESC: $NAME"
        start-stop-daemon --oknodo --stop --quiet --pidfile $PIDFILE \
                --exec $DAEMON
        log_end_msg 0
        ;;
0
задан 15 July 2015 в 21:14
1 ответ

С - signal вы можете использовать числовые значения или имя сигнала без части SIG , например - сигнал TERM .

Не используйте - exec $ DAEMON при остановке, так как это не работает, если вы пытаетесь остановить демон после замены исполняемый файл как часть обновления: исполняемый файл не соответствует запущенному процессу, поэтому он не останавливается. В качестве альтернативы, если вы настаиваете на использовании - exec , обязательно остановите демон перед заменой исполняемого файла.

Если созданный pid-файл не соответствует процессу демона, то, вероятно, сам демон также разветвляется на задний план. Если это так, то посмотрите, есть ли у демона возможность предотвратить эту фоновую работу, поскольку start-stop-daemon уже позаботится об этом. Если это невозможно, не используйте параметр pidfile и полагайтесь на - exec (но см. Предыдущий параграф об обновлении).

1
ответ дан 4 December 2019 в 16:53

Теги

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