为啥“重启”操作不适用于 crontab?
Posted
技术标签:
【中文标题】为啥“重启”操作不适用于 crontab?【英文标题】:Why 'reboot' operation does not work with crontab?为什么“重启”操作不适用于 crontab? 【发布时间】:2022-01-18 07:53:11 【问题描述】:我使用的是 ubuntu 18.04。
我想每天重启我的服务器。
这是我的 root crontab 文件,我可以通过 'sudo crontab -e' 操作看到它
0 0 * * * rm /var/log/*log.*
0 0 * * * rm /var/log/rinetd.log
1 0 * * * reboot now
我确认其余命令运行良好,但只有“重启”命令不起作用,我不知道原因。 我检查了 'reboot now' 操作在 bash shell 中运行良好。
obiwan@myserver ~ sudo reboot now
Connection to 10.10.10.122 closed by remote host.
Connection to 10.10.10.122 closed.
当我搜索它时,我只发现关于 crontab 中的“@reboot”选项的问题不起作用,所以我正在写这个问题。
一直以来,非常感谢。
【问题讨论】:
这可能应该转到Unix & Linux。无论如何,请检查您的系统日志;如果命令发出任何类型的错误或其他输出,您将在那里看到它。 据我所知,来自 cron 守护程序的错误消息不会出现在系统日志中。而且我只是检查了系统日志,并没有找到那个时间(晚上十二点)的任何日志。 【参考方案1】:所以我最近也开始遇到这个问题。
我一直在做一些挖掘,到目前为止我发现如下:
在 SU crontab 中放置“reboot”不会执行任何操作,但放置“/sbin/reboot”会成功重新启动系统 这对于用户 crontab 是不正确的,无论是“reboot”还是“/sbin/reboot”功能。所以这是一个临时修复,可以让您的系统暂时正常工作,但我会继续挖掘。
编辑: 这里还有更多事情要做,它似乎不仅仅是一个与 su 相关的问题。我将密码明文传递给“sudo systemctl reboot”,但它没有触发。
【讨论】:
我错过了回复警报。对不起。我也通过放置“/sbin/reboot”解决了这个问题,但我也想知道原因。感谢您的友好和详细的回答。如果您发现任何其他内容,请告诉我,我将不胜感激。以上是关于为啥“重启”操作不适用于 crontab?的主要内容,如果未能解决你的问题,请参考以下文章