systemd

systemd

我使用以下 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

相关内容