使用 cron/crontab 重新启动 apache 时出现问题(Ubuntu 18.04)

使用 cron/crontab 重新启动 apache 时出现问题(Ubuntu 18.04)

我有一个特定的案例,需要在一天中的特定时间测试软件的新版本,因此我有一个 cronjob,它应该:

软件分别设置在/var/www/html 文件夹 V2 和 V3 中。因此我使用 sed 来更改版本。a) 上午更改虚拟主机并重启 apache b) 下午改回旧版本并重启 apache

Crontab设置如下:

0 9 * * *  sed -i 's/V2/V3/g'  /etc/apache2/sites-available/software.conf && service apache2 restart
0 14 * * *  sed -i 's/V3/V2/g'  /etc/apache2/sites-available/software.conf && service apache2 restart 

Sed 更改了版本,但 apache 不会重新启动以应用更改。您能帮我解决这个问题吗?谢谢

答案1

旧命令service已弃用,并将在将来的 Ubuntu 版本中删除。它不再是管理服务的首选方式。现在就是这样systemctl

您应该改为写systemctl restart apache2。当然,简单的配置更改不需要重新启动服务器;重新加载也可以,而且不会导致不必要的服务中断。所以,systemctl reload apache2

另外,crontabs 的 PATH 比您的常规登录 shell 更受限制。 和 可能都不systemctlservicePATH 中。 因此您可能希望在 crontab 的顶部设置 PATH。 例如:

PATH=/usr/sbin:/sbin:/usr/bin:/bin

相关内容