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

编写 c++ 程序 test.c

#include <stdio.h>
#include <string.h> int main(){
FILE *fp = fopen("./1.txt","a+");
if(fp==){
printf("can't open file\n");
return ;
} int ix = ;
for(;;ix++){
fseek(fp,,SEEK_END);
char s_add_arr[];
memset(s_add_arr,'\0',);
sprintf(s_add_arr,"%i\n",ix);
fwrite(s_add_arr,strlen(s_add_arr),,fp); sleep();
}
fclose(fp);
return ;
}

启动服务

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=
priority=
redirect_stderr=true
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=
stdout_logfile=/home/jingchanglin/code/test/app.log

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

[root@localhost]# supervisorctl
sshd RUNNING pid , uptime ::
test RUNNING pid , uptime ::
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 启动某个程序

supervisor 配置程序挂起自启动的更多相关文章

  1. 【netcore基础】ubuntu 16.04 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动

    今天来整理下 netcore 在 linux(ubuntu) 上的运行环境搭建 对应版本 ubuntu 16.04 .net core 2.1 nginx version: nginx/1.10.3 ...

  2. 【netcore基础】CentOS 7.6.1810 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动

    之前写过一篇Ubuntu的环境搭建博客,感觉一些配置大同小异,这里重点记录下 nginx 作为静态 angular 项目文件服务器的配置 参考链接 [netcore基础]ubuntu 16.04 搭建 ...

  3. Robotium调用getActivity()导致程序挂起的方法

    1. 问题背景的叙述性说明 需要直接用在工作中没有项目的源代码robotium测试目标android平台launcher,该平台的基础上,当前日期的版本号android 4.4.2.之前我用来验证的可 ...

  4. 配置程序成为Linux服务

    最近写了个程序需要随Linux启动时自动运行起来, 查了一些方法后, 通过配置程序成为系统的服务实现了这个需求, 在此记录一下. 测试程序 #! /bin/sh while [ true ] do e ...

  5. Supervisor 配置过程

    Supervisor 配置过程 (转自https://www.izixia.cn/2016/01/03/supervisor-pei-zhi-guo-cheng/) 1.安装 pip install ...

  6. centos系统supervisor配置

    supervisor用来管理非daemon程序!将自动转换为daemon程序 安装: yum install supervisor 配置: 默认配置文件路径: /etc/supervisord.con ...

  7. .Net Core实战教程(三):使用Supervisor配置守护进程

    安装Supervisor yum install python-setuptools easy_install supervisor 配置Supervisor mkdir /etc/superviso ...

  8. 正尝试在 OS 载入程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内执行托管代码,这样做会导致应用程序挂起。

    出错提示: 正尝试在 OS 载入程序锁内执行托管代码. 不要尝试在 DllMain 或映像初始化函数内执行托管代码,这样做会导致应用程序挂起. 原因分析: .NET2.0中添加了42种非常强大的调试助 ...

  9. AppDelegate关于应用程序挂起、复原与终止的代理方法

    AppDelegate关于应用程序挂起.复原与终止的代理方法: 首次运行: - (BOOL)application:(UIApplication *)application didFinishLaun ...

随机推荐

  1. python--协程之特别篇

    Python通过yield提供了对协程的基本支持,但是不完全.而第三方的gevent为Python提供了比较完善的协程支持. gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一 ...

  2. 学习string,stringBuffer时遇到的问题

    今天学习string和stringBuffer.了解了两者的区别,然后去看java api都有啥方法.stringBuffer类有indexOf方法,于是写了下面的代码 String str = &q ...

  3. SpringMVC整合Mybatis的流程

    前提:如何要整合SpringMVC 与Mybatis,首先要会配置SpringMVC 第一部分:配置SpringMVC 第一步:导入jar包 第二步:构建一个请求 <%@ page langua ...

  4. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  5. 将base64转为图片

    void Base64StringToImage(string imgCode) { try { String inputStr = imgCode; byte[] arr = Convert.Fro ...

  6. JAVA基础---入门

    JDK的安装和环境变量的配置: 在Oralce官网下载好符合自己电脑配置的JDK后开始配置环境变量. 找到下载好的JDK的位置,复制,然后在环境变量里创建“JAVA_HOME”,粘贴:在path里用“ ...

  7. IMDB-二分类问题

    from keras.datasets import imdb from keras.utils.np_utils import to_categorical import numpy as np f ...

  8. Python规范

    1.命名 Django文件命名 小写+下划线 类:驼峰 2.edit 执行环境 work direction 到当前项目目录 3.类要加注释 4.去数据库找数据时需要try捕获异常,防止数据库连接断掉 ...

  9. 【译】索引进阶(八):SQL SERVER唯一索引

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 在本章节我们检查唯一索引.唯一索引的特别之处在于它不仅提供了性能益处,而且提供了数据完整性益处.在SQL SER ...

  10. 20175315Mycp

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...