
시스템 종료를 위한 Python 스크립트는 터미널에서는 제대로 작동하지만 crontab에 포함하면 작동하지 않습니다. 스크립트는 cron에 의해 호출되지만 '오류로 끝납니다.종료 명령을 찾을 수 없습니다'또는 'init 0 명령을 찾을 수 없습니다'. 나는 fedora 17을 사용하고 있으며 스크립트는 루트의 crontab에서 실행됩니다.
#!/usr/bin/python
import os
os.system('shutdown')
os.system('init 0')
답변1
귀하의 PATH는 귀하가 기대하는 것과 다릅니다. (Debian 버전의) crontab(5) 매뉴얼 페이지에 따르면 PATH 환경 변수는 /usr/bin:/bin
cron에서 실행되는 프로그램에 대해 로 설정됩니다. PATH=
crontab 상단에 다음과 같은 줄을 추가하여 이를 변경할 수 있습니다 .
PATH=/usr/sbin:/sbin:/usr/bin:/bin
이렇게 하면 PATH= 줄 아래의 모든 crontab 항목에 대한 경로가 다음 PATH= 줄까지 변경됩니다. 참조크론탭(5)자세한 내용은 매뉴얼 페이지를 참조하세요.
답변2
스니펫의 첫 번째 줄은 다음과 같아야 합니다.
#!/usr/local/bin/python
PATH
또는 crontab에 적절한 값을 설정했는지 확인한 경우 :
#!/bin/env python
crontab 항목은 어떻게 생겼나요? 이는 매우 제한된 환경을 설정하므로 이를 찾을 수 cron
있도록 스크립트 파일의 전체 경로를 제공해야 한다는 점을 잊지 마십시오 .cron
게다가 Python은 의 제한된 환경을 상속받기 때문에 shutdown
에서 호출될 때 찾을 수 없을 수도 있습니다 . 호출 시 명령 에 대한 전체 경로를 제공해보세요 .cron
cron
shutdown
os.system()