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 # 

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 
  • Преобразование update-rc.d redis_6379 по умолчанию в команду chkconfig
  • Cron job throwing error "service: not found ", но при выполнении вручную в терминальном скрипте работает нормально
  • Сервис «org.kde.kaccessibleapp» не существует
  • Когда подходящее время для запуска Redshift с помощью выскочки?
  • Скрипт Init.d не работает при запуске: не удалось запустить SYSV
  • Должны ли использоваться «invoke-rc.d» или «service» для перезапуска служб?
  • Как работают службы в Debian и как я могу ими управлять?
  • rpc.statd работает в системе, не использующей NFS
  • Сохранение услуг на EC2 в живых
  • Запустить сервис с другой конфигурацией
  • Тайм-аут с «перезагрузкой сетевой сети»
  • Моя машина не имеет имени хоста. «Не удалось запустить hostname.service: Unit hostname.service замаскирован».
  • Interesting Posts

    отпустите службу systemd перед выключением

    Почему я получаю сообщение об ошибке «print_unicode: строка 9: printf: отсутствует символ Unicode для Unicode 0187» с этим скриптом

    Локальная ошибка в Debian

    Ошибка SSL-сертификата: не удается получить сертификат локального эмитента

    Базовая ОС для беспроводной передачи и приема

    Запуск процесса как другого пользователя / группы (в скрипте init.d)

    Является ли команда whois безопасной для конфиденциальности?

    Резервные порты для модема

    Определения аргументов демона и сервера

    в какой директории должен быть скомпилирован Firefox?

    su для конкретного пользователя, только если запрашивающий пользователь находится в определенной группе

    Pagemap на устройствах с отображением памяти не работает

    Можно ли задавать одно задание на определенный час с помощью анакрона

    Что такое + в команде find / path / -exec '{}' + do?

    Как перезагрузить / перевести питание на устройство PCIe?

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