Ubuntu18.04 systemd 设置服务异常退出自动重启

在运行一个服务时,会遇到程序因为内部出错,运行中止的情况。如果使用人工发现并且重启的方法,会很严重地影响服务的可用性,也增大了人工操作成本。

处理这个问题有多重方法,最简单的方法是使用 supervisor 这样的软件来运行服务,可以参考:http://supervisord.org

在 Unix/Linux 类的操作系统中,一般使用专门的服务管理软件调度服务进程,比较主流的有:System V 的 Init 系统、Upstart 和最新的 systemd。这些服务管理软件都有检测服务状态,当服务异常退出重启的功能。可以参考:https://www.digitalocean.com/community/tutorials/how-to-configure-a-linux-service-to-start-automatically-after-a-crash-or-reboot-part-1-practical-examples

由于我自己使用 Ubuntu,而 Ubuntu 最新的几个版本的服务管理软件为 systemd,所以我简单介绍一下 systemd 的异常退出重启配置方法。

systemd 的基本概念… Read the rest