Linux 后台服务管理

2016-12-23 linux devops software

在 Linux 中,对于一个后台服务,如果要可靠地在后台运行,最好能监控进程状态,在意外结束时能自动重启。

常见的功能全面的主流工具主要有 monit(C)、supervisor(Python)、goreman(Go),其中 goreman 是对 Ruby 下广泛使用的 foreman 工具,使用 golang 的重写。

在此,仅介绍下在 Linux 中如何使用。

Monit

monit logo

Monit 是一款功能非常丰富的进程、文件、目录和设备的监测软件,通过 C 语言开发,是一款轻量级的后台管理服务,适用于 *nix 平台。

它可以自动修复那些已经停止运作的程序,特使适合处理那些由于多种原因导致的软件错误,同时 Monit 包含一个内嵌的 HTTP(S) Web 界面,你可以使用浏览器方便地查看 Monit 所监视的服务器。

在 CentOS 中,可以直接通过如下命令安装。

# yum --enablerepo=epel install monit

如果启动时不使用 arguments 参数,则会直接作为服务进程启动,否则尝试链接 127.0.0.1:2812 并执行相应的命令;简单列举下 monit 启动是相关的命令,以及参数。

monit [options] {arguments}

常用参数:
  -I 前端执行,默认会自动切换为后台执行;
  -t 对配置文件执行参数检查;
  -c 指定配置文件;
  -g
  -i 查看monit的ID,第一次会自动生成并保存到~/.monit.id文件中
  -r 重新生成ID
  -H [file] 生成指定文件的SHA1和MD5校验值

常用参数:
  status [name]
    查看某个服务的状态,如果不使用name,则会打印所有服务状态;
  summary [name]
    打印概览;
  quit
    退出服务;

常用命令:
  monit -I -c monitrc
  monit -c monitrc quit
  monit -c monitrc reload

配置

启动内置httpd服务

其中 status、summary、report 指令,需要启动 httpd 服务才可以,否则无法建立链接。

set httpd port 2812 and
    use address localhost  # only accept connection from localhost
    allow localhost        # allow localhost to connect to the server and
    allow admin:monit      # require user 'admin' with password 'monit'

参考

Monit Offical,可以查看官方文档 Monit Reference,也可以直接查看 man 。