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
。