crontab 시작 화면을 사용하는 방법

crontab 시작 화면을 사용하는 방법

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.

관련 정보