sudo crontab -e
15 0 * * 1-5 /usr/bin/screen -S wake_up -d -m /home/pi/auto/wake_up.py
그런데 00:15에 화면이 시작되지 않습니다...
이 명령은: (터미널에서 작동)
화면-Swake_up-dm/home/pi/auto/wake_up.py
파이썬 파일:
#!/usr/bin/env python3
import time
x = 1
while x<10:
print (x)
x += 1
time.sleep(1)
/var/log/시스템 로그
Nov 17 00:15:01 pi cron[352]: (root) RELOAD (crontabs/root)
Nov 17 00:15:01 pi CRON[32392]: (root) CMD (/usr/bin/screen -S wake_up -d -m /home/pi/auto/wake_up.py)
심지어 올바르게 로깅을 시작하게 되었습니다.
답변1
screen -S wake_up -d -m /home/pi/auto/wake_up.py
이렇게 하면 명령 화면이 열린 상태로 유지되지 않습니다. 대신 다음 파일을 생성하세요.
% cat /home/pi/auto/.boot-screenrc
screen -t cpu 1
stuff /home/pi/auto/wake_up.py\015
그러면 Python 명령을 표준 입력에 삽입(채우기)하고 반환값을 추가하는 화면이 시작됩니다.
그런 다음 다음을 추가합니다.
screen -d -m -S wake_up -c /home/pi/auto/.boot-screenrc
또한 cron의 기본 경로는 매우 축약되어 있습니다. 타사 소프트웨어를 로드한 경우 경로에 없을 수 있습니다. env 명령 대신 절대 경로를 사용하십시오. 또는 crontab 파일 상단에 다음과 같은 줄을 추가할 수 있습니다.
PATH=/bin:/usr/bin:/some/other/path
답변2
당신은 가깝습니다. 루트 대신 sudo
자신의 콘텐츠를 편집할 수 있도록 제거하세요 . crontab
그리고 지정할 필요가 /usr/bin/screen
없습니다 screen
.
이 screen
세션은 코스 기간 동안 지속됩니다 python
. 프로그램이 종료될 때도 마찬가지입니다 screen
.