如何使用 cron 停止 systemd 服务?

如何使用 cron 停止 systemd 服务?

我有一个简单的 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

相关内容