菜鸟笔记
提升您的技术认知

菜鸟教程

rapidjson 构造数组将函数实现放在头文件中RapidJSON解析和生成Json绝对路径和相对路径gcc 优化选项 -O1 -O2 -O3 -Os 优先级Python求一个整数位数的方法python中判断数字位数的几种方法python计算分位数查看hive的版本如何查看hadoop的版本elasticsearch查看所有indexsublime 列模式 列编辑shell遍历目录下所有文件http-parser解析http报文详解supervisor守护工具配置lnmp为已有站点手动更新ssl证书记录java 最长回文、最长回文子串ssh免密码登录为Linux内核开启BBR加速frp服务开机自启x86架构下,页面大小为什么是4K?如何限制对象只能建立在堆上或者栈上进程间通信的方式SyntaxError: Non-ASCII character '\xe5'TCP 连接半关闭问题ucontext 协程库代码分析python中yield的用法详解为PHP7.0安装redis扩展ucontext 简单协程库ImportError: No module named cv2的完美解决方法HashMap扩容全过程关于HashMap常见面试考点(底层原理+扩容机制)DOS批处理中的字符串处理详解(字符串截取)Linux下如何查找.sh后缀的文件core文件出现“is not a core dump: File format not recognized”的原因和解决方法(看/proc/pid/limits)记一次docker问题定位(perf,iostat等性能分析)Protocol Buffers 2.5.0 安装python 使用thrift序列化与反序列化对象PHP的base64_decode乱码linux中后台运行 java -jarLinux常用命令--文件搜索Linux常用命令--文件基础操作与文件权限变更Linux常用命令--软件包管理之(RPM包管理)Linux常用命令--文件编辑与查看Linux常用命令--文件压缩与挂载Linux常用命令--系统管理Linux常用命令--系统管理之(用户管理、用户组管理)Linux常用命令--系统管理之(进程管理、定时任务、系统监控)Linux常用命令--软件包管理之(服务管理)Linux常用命令--软件包管理之(yum与源码包安装)Linux初窥:Linux下SSH免密码登录配置如何查看CentOS7的版本信息Linux环境变量文件介绍Linux下Tomcat的安装与配置CentOS解决-bash: vim: command not found10 个提高效率的 Linux 命令别名shell比较浮点数和整数crontab 30秒执行一次Python中字典合并的四种方法shell查看CPU 硬盘 内存使用率Python 四大主流 Web 编程框架python:web后台框架简单实现如何使用 BRPC Dummy Serverlist、vector使用erase()时需要注意的地方——迭代器失效容器删除元素后迭代器失效_STL源码剖析——vector容器STL的erase()陷阱-迭代器失效总结.bashrc中定义实用的别名和函数

supervisor守护工具配置

阅读 : 290

1    进程安装
1.1    安装python
tar xvf Python-2.7.10.tgz
cd Python-2.7.10
./configure --prefix=/usr/local/python2.7
make & make install
ln -s /root/chx/python2.7/bin/python /usr/bin/python
1.2    安装守护进程
解压supervisor-3.3.1.tar.gz 并安装
# tar zxvf supervisor-3.3.1.tar.gz && cd supervisor-3.3.1
# python setup.py install

验证成功,输入supervisorctl --help
1.3    安装工具
# tar zxvf setuptools-0.6c11.tar.gz && cd setuptools-0.6c11
# python setup.py build
# python setup.py install
2    创建supervisor的配置文件
# echo_supervisord_conf > /etc/supervisord.conf
3    修改配置文件
在supervisord.conf文件最后增加如下内容,实际的路径、启动命令等信息需要根据实际情况填写。
 [program:RtspProxy]
command=dotnet RTSPProxy.dll
directory=/usr/local/rtsp
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/usr/local/itos/itos-rtsp/itos.err.log
stdout_logfile=/usr/local/itos/itos-rtsp/itos.out.log

4    开启supervisord服务
# supervisord -c /etc/supervisord.conf  
5    相关命令
supervisorctl status 查看进程运行状态 
supervisorctl start 进程名 启动进程 
supervisorctl stop 进程名 关闭进程 
supervisorctl restart 进程名 重启进程 
supervisorctl update 重新载入配置文件 
supervisorctl shutdown 关闭supervisord 
supervisorctl clear 进程名 清空进程日志 
supervisorctl 进入到交互模式下。使用help查看所有命令。 
start stop restart + all 表示启动,关闭,重启所有进程。

重启机器如果出现
unix:///tmp/supervisor.sock no such file的问题
按如下方式解决

1、打开配置文件

vim /etc/supervisord.conf
这里把所有的/tmp路径改掉,/tmp/supervisor.sock 改成 /var/run/supervisor.sock,/tmp/supervisord.log 改成 /var/log/supervisor.log,/tmp/supervisord.pid 改成 /var/run/supervisor.pid 要不容易被linux自动清掉

2、修改权限

sudo chmod 777 /run
sudo chmod 777 /var/log
如果没改,启动报错 IOError: [Errno 13] Permission denied: '/var/log/supervisord.log'

3、创建supervisor.sock

sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
4、启动supervisord,注意stop之前的实例或杀死进程

6    其他

1.查看supervisor运行的进程
ps -ef | grep supervisord

2.杀死进程
kill -s SIGTERM 26530 #数字为进程id
supervisord -c /etc/supervisord.conf #启动supervisor

7    设置开机启动
7.1    在shell里执行
Vi  /lib/systemd/system/supervisord.service
7.2    编辑开机启动时执行的脚本如下
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf // 开机启动时执行
ExecStop=/usr/bin/supervisord shutdown 
ExecReload=/usr/bin/supervisord reload  
killMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
7.3    执行开机启动命令:
systemctl enable supervisord