本文介绍配置systemd以在Linux崩溃后自动启动服务的方法。进程在Linux系统上崩溃的原因有很多,你可以调查并解决问题,但可能需要一段时间。但是你可以立即将服务恢复到联机状态的一件事是在服务中断时自动启动,这会减少停机时间以获得更好的可用性,它确保你的服务始终可供用户访问。在systemd系统上自动执行此操作非常容易,因为systemd具有启用此功能的选项。可以先参考Bash脚本:实现在Linux上关闭时自动启动服务。
什么是systemd?
Systemd是一个新的init系统和系统管理器,它通过传统的SysV init系统实现/适用于所有主要的Linux发行版。systemd与SysV和LSB init脚本兼容,它可以作为sysvinit系统的直接替代品。systemd是内核启动并保持PID 1的第一个进程。systemctl是命令行实用程序和主要工具,用于管理systemd守护程序/服务,例如启动、重新启动、停止、启用、禁用、重新加载和状态,参考Systemd入门教程。
systemd使用.service文件而不是bash脚本(SysV init使用),systemd将所有守护进程排序到他们自己的Linux cgroup中,你可以通过浏览/cgroup/systemd文件来查看系统层次结构。
systemd服务文件有三个主要部分,我们需要在[Service] potion下添加以下必需参数:
[Unit]
...
[Service