start-stop-daemon делает cron pidfile с неправильным pid

У меня есть сценарий init.d, чтобы запустить crond, который указывает следующее для start ():

start-stop-daemon -S --quiet --make-pidfile --pidfile /var/run/crond.pid --background --exec /usr/sbin/crond 

Однако PID всегда на одно число выше, чем указано в /var/run/crond.pid. Кто-нибудь знает, что здесь происходит? У меня есть примерно десять других скриптов init.d, которые также выполняют одни и те же вызовы, и только cron.d имеет эту проблему.

EDIT: Это интересно:

 # /usr/sbin/crond & # [1]+ Done /usr/sbin/crond # echo $! 737 # ps -eaf | grep crond 738 root /usr/sbin/crond 740 root grep crond # 

  • Ошибка сценария загрузки chkconfig, сценарий работает хорошо вручную
  • Как избежать sudo при работе с файлами, принадлежащими учетной записи службы?
  • Запустить сервис с другой конфигурацией
  • Когда подходящее время для запуска Redshift с помощью выскочки?
  • Как проверить, установлена ​​ли Samba
  • службы против initctl в Ubuntu
  • Как запустить процесс в окне терминала, а затем скрыть это окно?
  • Параметры времени выполнения для службы systemd
  • One Solution collect form web for “start-stop-daemon делает cron pidfile с неправильным pid”

    Программа crond предназначена для демон. Когда он начинается, одна из первых вещей, которые он делает, вилка ребенка и выход из родителя. Это предназначено для сред, в которых вызывающий абонент ожидает выхода программы перед продолжением, тогда как демону необходимо продолжить выполнение в фоновом режиме.

     caller ---- fork--> wait -------------------------+-> ... | | '----> exec crond ---- fork--> exit -' | '----> read crontab, wait for time of next job, ... 

    PID, записанный start-stop-daemon является PID родителя. Если в течение короткого промежутка времени между двумя вилками не происходит никаких других процессов, ПИД-диск ребенка становится PID родителя плюс один.

    Так как start-stop-daemon предназначен для обработки демонов и позволяет им работать в фоновом режиме, скажите, что crond останется на переднем плане, то есть не в fork в начале.

     caller ---- fork--> store pid; ... | | '----> exec crond -f ----> read crontab, wait for time of next job, ... 

    С crond BusyBox передайте ему опцию -f .

     start-stop-daemon -S --quiet --make-pidfile --pidfile /var/run/crond.pid --background --exec /usr/sbin/crond -- -f 
    Interesting Posts

    Как найти файл с частично определенным путем?

    Есть ли способ сделать vim автоматически добавлением пробела в начале комментария?

    crontab не запускает один скрипт

    Выходной звук путем записи в / dev / dsp

    Экспорт переменных и установка глобальных переменных в Bash

    Что такое «Печать в файл» и может ли он использоваться из командной строки?

    Восстановление содержимого удаленных текстовых файлов

    найти файлы с более высоким разрешением, чем xxx

    Поиск отсутствующего значения в текстовом файле

    Как я могу загрузить Debian с USB-накопителя из Windows 10?

    Редактировать файлы с помощью sed и сохранять результат в разных файлах, имена которых основаны на исходных именах файлов

    Размонтирование акций при выходе из системы с помощью pam_mount

    важные пакеты debian автоматически снимаются

    «Образ диска базы данных искажен»

    Не удалось найти libmount, когда кросс-компиляция glib

    Linux и Unix - лучшая ОС в мире.