再起動時にスーパーバイザデーモンが起動しないのはなぜですか?

再起動時にスーパーバイザデーモンが起動しないのはなぜですか?

crontab -e現在のユーザーのcrontabエントリを追加しました。

@reboot supervisord -c /etc/supervisord.conf

ただし、再起動後、Supervisordemonは実行されません。 Bashでコマンドを再実行する必要があります。 cronjobを設定した後、2回目の試みでのみ予想されたエラーが発生しました。

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

私のcronjobが機能しないのはなぜですか?起動時にスーパーバイザデーモンをどのように起動できますか?

ベストアンサー1

cronデフォルトでは、次の最小環境で実行されます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;

実行可能ファイルsupervisordが存在しない、見つからない、または/usr/bin実行できません。/bincron

最善の方法であり、最も安全な方法は、実行可能ファイルがcronのデフォルトパスにあるかどうかわからない場合は、cronエントリの実行可能ファイルへのフルパスを常に使用することです。

または、PATH以下を編集してcronをグローバルに変更することもできます/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 )
#

おすすめ記事