我已经安排了一个@reboot cron作业来启动/etc/init.d中的服务
启动后,当我进入 shell 命令行时,服务没有启动。/var/log/cron 的内容显示以下内容,
2022-09-27T17:16:03.913135-04:00 mtcap CROND[2147]: (root) CMDOUT (Stopping cgbscript)
2022-09-27T17:16:03.927646-04:00 mtcap CROND[2147]: (root) CMDOUT (/etc/init.d/cgbscript: line 21: start-stop-daemon: command not found)
2022-09-27T17:16:03.933438-04:00 mtcap CROND[2147]: (root) CMDOUT (Starting cgbscript)
2022-09-27T17:16:03.948336-04:00 mtcap CROND[2147]: (root) CMDOUT (/etc/init.d/cgbscript: line 11: start-stop-daemon: command not found)
如果这些内容在你的屏幕上被截断,则两次报告的错误是,
start-stop-daemon: command not found
当我到达 shell 提示符时我可以执行
# /etc/init.d/cgbscript start
一切正常。我没有看到 start-stop-daemon 位于 /bin/ 中,也没有位于 /sbin/ 中。我无法执行,# whereis start-stop-daemon
因为这是一个微型嵌入式系统。有什么想法吗?
答案1
Cron 作业的执行环境与其余启动顺序不同。因此,/usr/sbin/ 不在其余启动顺序的 $PATH 中。
改变 cgbscript 以便 start-stop-daemon 以其绝对路径出现。
/usr/sbin/start-stop-daemon
这解决了问题。