supervisor 配置程序挂起自启动

使用 supervisor 服务,将程序监控起来,如果程序挂掉了,可以实现自启动

编写 c++ 程序 test.c

#include <stdio.h>
#include <string.h>

int main(){
        FILE *fp = fopen("./1.txt","a+");
        if(fp==0){
                printf("can't open file\n");
                return 0;
        }

        int ix = 0;
        for(;;ix++){
                fseek(fp,0,SEEK_END);
                char s_add_arr[10];
                memset(s_add_arr,'\0',10);
                sprintf(s_add_arr,"%i\n",ix);
                fwrite(s_add_arr,strlen(s_add_arr),1,fp);

                sleep(1);
        }
        fclose(fp);
        return 0;
}

启动服务

supervisord  -c /etc/supervisord.conf

# 使用了默认的配置文件 在 /etc/ 下

要给需要自拉起的程序添加配置文件 默认放在 /etc/supervisor.d/ 目录下,以 .conf 文件结尾

测试程序为 test.conf

[program:test]
command=/home/jingchanglin/code/test/test
autostart=true
autorestart=true
startsecs=10
priority=1
redirect_stderr=true
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stdout_logfile=/home/jingchanglin/code/test/app.log

服务启动后,可以使用 supervisorctl 命令来进入控制台

[root@localhost]# supervisorctl
sshd                             RUNNING   pid 28606, uptime 0:02:42
test                             RUNNING   pid 28605, uptime 0:02:42
supervisor> help

default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail   
avail  fg        pid   remove  shutdown  status  update 
clear  maintail  quit  reread  signal    stop    version

supervisor> 

 

进入之后,看到的是在监控的程序的名称

使用 help 可以看服务支持哪些自命令

一般常用的包括

reload

重新加载,这样某个新添/删除的服务就可以看到了

shutdown 关闭某个程序

start 启动某个程序

posted @ 2018-08-17 15:19  oftenlin  阅读(564)  评论(0编辑  收藏  举报