我刚开始使用cronjobs,但直到昨天我遇到了一个我无法想象/发现的问题。
@reboot me /etc/application/start-script.sh
我在Raspberry Pi Zero上安装了Raspbian Jessie(minimal)。其中一个用户有一个cronjob命令@reboot。当我检查“sudo /etc/init.d/cron status”时,我可以看到重启后执行了cronjob并执行了。唯一的问题是任何输出被删除,“没有安装MTA” - 消息,(关心?)。
#!/bin/bash
# My start script
logfile=/home/me/logfile.log
echo "Starting program..." >> $logfile
application
echo "Program started!" >> $logfile
正如您所看到的,它应该创建一个日志文件,并在重新启动后将脚本作为cronjob调用时执行此操作。当你手动执行它时,这个脚本工作得很好,它将输出写入日志文件并启动程序。
问题是:当.sh脚本被称为cronjob时,程序不会启动。
为什么脚本执行时只启动应用程序?
“sudo /etc/init.d/cron status”输出
Mar 17 22:14:45 pizza-pi systemd[1]: Starting Regular background program processing daemon...
Mar 17 22:14:45 pizza-pi systemd[1]: Started Regular background program processing daemon.
Mar 17 22:14:45 pizza-pi cron[292]: (CRON) INFO (pidfile fd = 3)
Mar 17 22:14:45 pizza-pi cron[292]: (CRON) INFO (Running @reboot jobs)
Mar 17 22:14:45 pizza-pi CRON[296]: pam_unix(cron:session): session opened for user me by (uid=0)
Mar 17 22:14:45 pizza-pi CRON[318]: (me) CMD (etc/application/start-script.sh)
Mar 17 22:14:45 pizza-pi CRON[296]: (CRON) info (No MTA installed, discarding output)
Mar 17 22:14:45 pizza-pi pam_unix(cron:session): session closed for user me
答案 0 :(得分:1)
编辑/etc/rc.local文件并在/etc/init.d/cron/start中添加以下行,确保它在退出0之前。
希望答案对你有用