我使用以下 crontab 定期重启系统
30 5 * * * root root reboot
但在这些计划的重启之后,某些服务不会自动启动。我已经注意到的是 OpenVPN 和 PostgreSQL,但我预计还会有更多。首先,我在添加计划的重启后注意到了这一点,但由于我最近从 15.10 升级,所以可能是升级过程中出了问题。
我希望有人能告诉我,a) 我做错了什么或/和b) 什么原因导致了这种情况。
答案1
A) 每天重启服务器是错误的。除此之外,正确的重启方式是shutdown -r now
,可以正确关闭服务器上的服务,然后重启。
B) 使用reboot
重新启动服务器不会关闭服务,因此这些服务可能会处于不稳定状态并因此拒绝启动。
答案2
您可能遇到的守护进程自动启动问题。
正确的行为取决于所使用的 init 系统。目前还不清楚您使用的是哪一个。由于您已升级到 Ubuntu 15.10,因此 systemd 应该是默认设置,但您提到了这一点,/etc/init.d
这将指向略有不同的 System-V 样式 init 脚本。
systemd
首先,您应该检查服务是否具有正确的 systemd init 脚本/etc/systemd/system/multi-user.target.wants/{service}.service
然后您可以通过发出以下命令来启用该服务:
$ sudo systemctl enable {service}.service
系统 V
检查维护重启完成后系统启动到的运行级别
$ runlevel
检查服务是否在以下位置有可运行的 bash 脚本/etc/init.d/{service}
然后在启动时启用该服务:
$ update-rc.d {service} enable