您的位置:首页 > 编程语言 > Go语言

使用supervisord管理进程

2016-04-23 09:49 495 查看
转自: http://www.linux-mac.com/archives/708
Go 程序目前还不能作为daemon程序运行,比如:在 linux 不能使用
./app


【开机自启动】 go 程序,需要借助第三方程序实现开机启动;

例如supervisord,当然还有其他的,本文以supervisord为例:

1. 安装(需要 EPEL 源):
CentOS 5 安装
32位:
rpm -ivh http://mirrors.aliyun.com/epel/5/i386/epel-release-5-4.noarch.rpm 64位:
rpm -ivh http://mirrors.aliyun.com/epel/5/x86_64/epel-release-5-4.noarch.rpm 
CentOS 6 安装
32位:
rpm -ivh http://mirrors.aliyun.com/epel/6/i386/epel-release-6-8.noarch.rpm 64位:
rpm -ivh http://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm 
CentOS 7 安装:
rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

安装supervisor
yum install supervisor -y

2. 配置文件:
vim /etc/supervisord.conf

[program:auth]
command=/usr/auth/auth       ; 程序名 (相对使用 PATH,可以带参数)
priority=999                 ; 相对的启动优先级 (默认 999)
autostart=true               ; 随 supervisord 启动而运行 (默认: true)
autorestart=true             ; 程序意外退出时自动重启 (默认: true)
startsecs=10                 ; 默认10秒内程序必须重启 (默认 10 秒)
startretries=5               ; 程序启动失败后最多的重启次数(默认 3)
exitcodes=0,2                ; “预期”的进程退出代码(默认 0,2)
stopsignal=QUIT              ; 程序退出所使用的信号 (默认 TERM)
stopwaitsecs=10              ; 等待最大数秒发送SIGKILL (默认 10)
user=root                    ; 运行程序的账户
log_stdout=true              ; 如果 TRUE,程序输出日志 (默认 true)
log_stderr=true              ; 如果 TRUE,错误日志输出 (def false)
logfile=/var/log/auth.log    ; 进程的日志路径,使用 NONE 便是不输出日志 (默认 AUTO)
logfile_maxbytes=100MB       ; 最大日志大小 (默认 50MB)
logfile_backups=10           ; 日志备份 (默认 10)

3. 开机启动
chkconfig supervisord on
service supervisord restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  go