如何使用 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-d-m/home/pi/auto/wake_up.py

Python 文件:

#!/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 的默认路径非常缩写。如果您加载了第 3 方软件,它可能不在路径中。确保使用绝对路径而不是 env 命令。或者,您可以在 crontab 文件的顶部添加一行,例如:

PATH=/bin:/usr/bin:/some/other/path

答案2

你很接近了。删除sudo以便您编辑自己的内容crontab而不是 root 的内容。并且无需指定/usr/bin/screen;您可以使用screen

screen会话将在您的课程期间持续存在python。当程序退出时也会如此screen

相关内容