我有一个需要在我的一台服务器上运行的应用程序(以单个二进制文件的形式),并且我希望能够正确控制其生命周期。我想要的是以下内容:
- 简单的一个命令启动/停止/重启
- 尽可能少的配置,我不想设置像monit这样的大东西,或者写500行shell脚本
- 处理日志文件中的 stdout/stderr/failures
- 如果进程正在运行,则以只有一个 pid 文件的方式管理 pidfile(这似乎很难正确使用 shell 脚本手动完成)
- (可选)在二进制文件崩溃时能够做些什么
- (可选)在服务器重新启动和/或应用程序崩溃时自动启动
我正在寻找的是一个轻量级的解决方案,它非常适合开箱即用的 Ubuntu Server,无需太多配置。
对于 Ubuntu,我认为Upstart是您正在寻找的。
https://askubuntu.com/questions/19320/how-to-enable-or-disable-services 这个 AskUbuntu 问题提供了有关您正在做的事情入门的极好信息。
简而言之,将以下内容复制到 /etc/init/mybinary.conf。
这应该可以让您进行以下操作:
Upstart 食谱作为您需要的所有信息:http: //upstart.ubuntu.com/cookbook/
顺便说一句,我觉得我应该提到 Ubuntu 计划让 Upstart 退役,转而支持 Systemd,但没有制定路线图。