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 # 

  • Моя машина не имеет имени хоста. «Не удалось запустить hostname.service: Unit hostname.service замаскирован».
  • Когда подходящее время для запуска Redshift с помощью выскочки?
  • Как создать службу для сценария оболочки, чтобы я мог начать и остановить ее, как демон?
  • Параметры времени выполнения для службы systemd
  • ключевое слово сервиса «сервис» не требуется
  • Как получить сервис, который гарантирует, что программа будет работать?
  • Ошибка сценария загрузки chkconfig, сценарий работает хорошо вручную
  • systemd: напишите .service daemon для настройки swap и fs в zram
  • 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

    Почему мои одиночные кавычки исчезают при подстановке с sed

    Как я могу поддерживать пользовательские учетные данные в соответствии с несколькими машинами?

    xinput показывает два трекпоинта вместо одного

    Thunderbird: новое уведомление по электронной почте не работает должным образом

    Как удалить программное обеспечение, установленное dpkg -i FILE.deb?

    Не удалось установить root fs после компиляции нового ядра в VMware

    Почему в этом примере происходит расширение параметра до расширения фигурной скобки?

    Как украсить график graphviz?

    Связь rsync со специальными файлами

    Простое определение для виртуальной памяти

    Объединение пар файлов TIFF в каталог

    Emacs: разные пользователи, разные темы, один и тот же файл инициализации

    RHEL6: системный шрифт по умолчанию

    Сила systemd для проверки состояния службы через n секунд

    Как команда `w` знает время простоя и текущую команду?

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