我已经在 Raspberry Pi 4 上安装了适用于 Raspberry Pi 64 位的 Ubuntu 20.04.1 LTS。我以sudo crontab e
普通用户的身份设置了一个 cronjob(实际上会将内容设置为 root 的 crontab),规则是,
@reboot sleep 20 && /home/ubuntu/mount_usb.sh
这应该在启动时运行,对吧?但事实并非如此。我也尝试过按时间间隔运行它(使用运行一次因为我需要该脚本运行一次),就像这样,
1 * * * * run-one /home/ubuntu/mount_usb.sh
这也不起作用。此脚本的内容是,
#!/bin/sh
/usr/bin/tmux new-session -d -s usb_watcher '/usr/bin/python3.8 /home/ubuntu/watch_driver.py'
我也尝试过这样,
#!/bin/sh
source /home/ubuntu/.profile
tmux new-session -d -s usb_watcher '/usr/bin/python3.8 /home/ubuntu/watch_driver.py
像这样,
#!/bin/sh
PATH=/usr/bin/
tmux new-session -d -s usb_watcher '/usr/bin/python3.8 /home/ubuntu/watch_driver.py
如果你想知道这里面有什么watch_driver.py
,那么请点击这里。
cron 日志如下所示(grep CRON /var/log/syslog
),
Sep 10 06:36:43 ubuntu CRON[1869]: (root) CMD (sleep 20 && /home/ubuntu/mount_usb.sh)
这是我执行时看到的sudo systemctl status cron
,
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-09-10 06:36:42 UTC; 4min 43s ago
Docs: man:cron(8)
Main PID: 1813 (cron)
Tasks: 1 (limit: 4434)
CGroup: /system.slice/cron.service
└─1813 /usr/sbin/cron -f
Sep 10 06:36:42 ubuntu systemd[1]: Started Regular background program processing daemon.
Sep 10 06:36:42 ubuntu cron[1813]: (CRON) INFO (pidfile fd = 3)
Sep 10 06:36:42 ubuntu cron[1813]: (CRON) INFO (Running @reboot jobs)
Sep 10 06:36:43 ubuntu CRON[1837]: pam_unix(cron:session): session opened for user root by (uid=0)
Sep 10 06:36:43 ubuntu CRON[1869]: (root) CMD (sleep 20 && /home/ubuntu/mount_usb.sh)
Sep 10 06:37:03 ubuntu CRON[1837]: pam_unix(cron:session): session closed for user root
如果 cron 任务运行,它应该创建一个tmux
会话,如下所示,
usb_watcher: 1 windows (created Thu Sep 10 07:21:00 2020)
但事实并非如此。我肯定我遗漏了一些东西。看了一些帖子,也许这与运行 cron 的用户有关,但似乎无法弄清楚,尝试更改用户(从我的常规用户运行),也没有用,也许我做错了。请指教。