crontab -e
현재 사용자에 대한 crontab 항목을 추가했습니다.
@reboot supervisord -c /etc/supervisord.conf
그러나 다시 시작한 후에는 Supervisordemon이 실행되지 않습니다. Bash에서 명령을 다시 실행해야 합니다. 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.
내 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
실행할 수 없습니다./bin
cron
가장 좋은 방법이자 가장 안전한 접근 방식은 실행 파일이 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 )
#