我想在启动时在屏幕上运行一个脚本。
这不起作用:
@reboot pi screen -d -m /home/pi/db_update.py
Run Code Online (Sandbox Code Playgroud)
但是在用户 pi 工作时手动运行它:
screen -d -m /home/pi/db_update.py
Run Code Online (Sandbox Code Playgroud)
知道我缺少什么吗?
而不是添加@reboot pi ...
到/etc/crontab
您应该crontab -e
以用户身份运行pi
并添加:
@reboot /usr/bin/screen -d -m /home/pi/db_update.py
Run Code Online (Sandbox Code Playgroud)
确保使用完整路径进行筛选(只是为了确保,没有它也可以工作),并且 /home/pi 不在加密文件系统上(去过那里,做过)。该命令不能依赖于任何可能只能在cron
守护程序启动或用户登录。
您可能想要添加一些内容db_update.py
(写入文件/var/tmp
以查看它实际运行,或者在 python 程序末尾放置 time.sleep(600) 以留出足够的时间登录和连接。
在 Lubuntu 13.04、python 2.7.4 上使用以下条目进行测试:
@reboot screen -d -m /home/anthon/countdown.py
Run Code Online (Sandbox Code Playgroud)
和countdown.py
:
#!/usr/bin/env python
import time
for x in range(600,0,-1):
print x
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
(和chmod 755 countdown.py
)