Por que meu daemon de supervisor não inicia na reinicialização?

1

Eu adicionei uma entrada crontab via crontab -e para o usuário atual:

@reboot supervisord -c /etc/supervisord.conf

No entanto, após a reinicialização, o supervisord demon não está em execução. Eu preciso executar o comando novamente no bash. Apenas uma segunda tentativa resulta em um erro que eu esperava imediatamente após configurar o cronjob.

$ supervisord -c /etc/supervisord.conf
$ supervisord -c /etc/supervisord.conf
Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.

Por que o meu cronjob não funciona e como eu inicio o daemon do supervisor na inicialização?

    
por k0pernikus 22.07.2014 / 15:09

1 resposta

2

cron , por padrão, em execução em um ambiente mínimo, de man 5 cron :

Several environment variables are set up automatically by  the  cron(8)
daemon.  SHELL is set to /bin/sh, and LOGNAME and HOME are set from the
/etc/passwd  line  of   the   crontab's   owner.   PATH   is   set   to
"/usr/bin:/bin".   HOME,  SHELL, and PATH may be overridden by settings
in the crontab;

Seu executável supervisord pode não estar em /usr/bin ou /bin , portanto, cron não pode encontrá-lo e não pode ser executado.

Uma boa prática, a maneira mais segura é sempre usar o caminho completo para o seu executável na entrada do cron, se você não tiver certeza de que está no caminho padrão do cron.

Ou você pode alterar PATH globalmente para o cron edditing /etc/crontab :

$ cat /etc/crontab 
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the 'crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
    
por 22.07.2014 / 17:54