Como está sendo executado por systemd
, não é necessário que ele se bifurque no plano de fundo, pois não está sendo chamado por um script de shell que o aguarda (depois de se bifurcar no segundo plano).
Eu estou no Ubuntu 15.04 e logado como root, mas quando eu corro
ps -ef | grep cron | grep -v grep
para garantir que o daemon do cron esteja em execução, vejo a opção -f
, o que significa que ele está sendo executado em primeiro plano e não como um daemon. Eu não mudei nada relacionado ao cron desde que o configurei (no DigitalOcean, a partir de sua imagem de estoque 15.04). Por que não seria executado como um daemon?
(E sim, eu sei que deveria estar usando systemd
. Isso foi feito para ser uma solução rápida e suja - já que o cron é tão simples e confiável, certo!? - até que eu conseguisse meus arquivos * .service
depurados e funcionando.
Como está sendo executado por systemd
, não é necessário que ele se bifurque no plano de fundo, pois não está sendo chamado por um script de shell que o aguarda (depois de se bifurcar no segundo plano).
Eu vejo a opção
-f
, o que significa que ela está sendo executada em primeiro plano e não como um daemon.
Não. Isso significa que não fez uma pequena e inútil dança de garfo e saia quando começou. Essas pequenas danças são (vãs) tentativas de demonstrar programas, na suposição de que um deles está inicializando os daemons efetuando login em uma sessão interativa e executando os programas a partir do shell. Isso na verdade não funciona de forma confiável e segura, e é a fonte de histórias de guerra ao longo dos anos de pessoas que tentaram iniciar daemons dessa maneira e ficaram desagradavelmente surpresos.
cron
é já daemonizado por força de ser executado sob um gerenciador de serviços. Não precisa fazer nada para tornar-se um daemon. E isso varia de inútil a ativamente prejudicial ao bom funcionamento do sistema. Assim, a convenção - graças a um quarto de século de pessoas querendo esse tipo de coisa para executar daemonsols sob o daemontools, runit, SRC da IBM, e assim por diante - é empregar quaisquer opções de linha de comando para simplesmente desligar essas pequenas danças. O gerenciamento adequado de serviços não precisa deles.
cron
run script . Uma coleção de scripts de execução.