我有一个简单的 crontab 条目,应该可以停止一项服务,但它却不起作用。
* * * * * systemctl stop nginx
我甚至尝试过:
* * * * * /bin/systemctl stop nginx
因为那是 systemctl 命令显示的所在位置。
该行适用于 root 用户,但不适用于 root 的 crontab。
所谓不工作,是指服务没有关闭。我可以确认服务器仍在运行,并且 systemctl status nginx 显示它处于活动状态。
我究竟做错了什么?
答案1
可能是因为您还没有告诉 cron 使用 root。
* * * * * root /bin/systemctl stop nginx
无论 nginx 状态如何(是否启动),该命令都会每分钟执行一次
那么,如果目标是确保 nginx 永远不会启动,为什么不禁用它呢?
systemctl disable nginx
==编辑==
Aaron Copley 在评论中提出了很好的观点,为了确保 nginx 在启动后不会启动,命令应该是;
systemctl mask nginx