Por que o cron não estaria rodando como um daemon?

2

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.

    
por iconoclast 02.08.2015 / 23:05

2 respostas

4

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).

    
por psusi 03.08.2015 / 04:14
4
  

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 é 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.

Leitura adicional

  • Jonathan de Boyne Pollard (2004). Erros a evitar ao projetar programas do programa Unix . Respostas frequentemente dadas.
  • Gerrit Pape. cron run script . Uma coleção de scripts de execução.
  • Jonathan de Boyne Pollard (2015). Não é necessário daemonizar. Realmente. A Casa do Horror.
por JdeBP 14.09.2015 / 20:37