这篇文章发布于 1323 天前,可能包含过期内容、失效链接、中二言论等,请谨慎甄别后引用。
什么是Supervisor管理器?
Supervisor是一个进程控制程序。它可以保证进行不会被系统或其他进程杀死。通俗点说,在你服务器内运行的PHP,Nginx,Redis等运行环境,一般很难会崩溃或是被系统杀死,或是死后马上就又活了过来,但如果是你自己写的脚本或是单个程序呢?而Supervisor管理器就是保证进程不会被杀或崩溃后自动重启的程序,Supervisor管理器会帮助您维护它们。
我该如何下载Supervisor管理器?
您可以参考Supervisor官网(可能需要搭梯子)给出的方案或是使用宝塔安装程序。Linux具体安装及配置教程可以参考此文章。
宝塔面板配置方法(推荐)
我之前在搭建Cloudreve站点的时候,总是会遇到一些程序崩溃或被系统杀死等现象,所以当时是我真的烦,一时间也没有什么好的办法,直到我发现了Supervisor后。。。
那么该如何使用Supervisor对Cloudreve进程进行守护呢?(以宝塔面板为例)
1.搜索安装Supervisor管理器
2.下载安装好后打开设置页面,然后点击添加进程守护
3.然后按照下图所示配置完成后点击确认即可
需要注意的是若宝塔没有自动在启动命令前添加
nohup
,则需要手动在启动命令前需要添加nohup
即 nohup ./cloudreve
非宝塔面板安装和配置方法
1.安装 Supervisor
-CentOS安装命令
yum install python-setuptools
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
2.配置 Supervisor
vi /etc/supervisord.conf
-配置模板:
[program:Cloudreve]
command=nohup ./cloudreve ;此为启动Cloudreve的命令
directory=/你的路径/ ;此为存放Cloudreve文件的目录末尾一定要加"/"
autorestart=true ;当程序跑出exit的时候,这个program会自动重启
autostart=true ;在supervisord启动的时候也自动启动
startsecs=3 ;程序重启时候停留在runing状态的秒数
startretries=3 ;启动失败自动重试次数,默认是3
stdout_logfile=/你的路径/read-in.out.log ;Cloudreve程序输出的日志
stderr_logfile=/你的路径/read-in.err.log ;Cloudreve程序输出的错误
stdout_logfile_maxbytes=20MB ;Cloudreve程序输出日志的最大大小
stderr_logfile_maxbytes=20MB ;Cloudreve程序输出错误的最大大小
user=root ;程序启动用户
priority=999 ;进程启动优先级,默认999,值小的优先启动
numprocs=1 ;默认为1,若不为1,process_name的表达式中一定要包含process_num来区分不同的进程
process_name=%(program_name)s_%(process_num)02d ;程序名称_不懂不要改动。
3.启动与关闭
启动:
supervisord -c /etc/supervisord.conf
关闭:
supervisorctl shutdown
重新载入配置:
supervisorctl reload
4.说明(引用此处)
信号名称 | 数字表示 | 说明 |
SIGHUP | 1 | 终端挂起或控制进程终止。当用户退出Shell时,由该进程启动的所有进程都会收到这个信号,默认动作为终止进程。 |
SIGINT | 2 | 键盘中断。当用户按下组合键时,用户终端向正在运行中的由该终端启动的程序发出此信号。默认动作为终止进程。 |
SIGQUIT | 3 | 键盘退出键被按下。当用户按下或组合键时,用户终端向正在运行中的由该终端启动的程序发出此信号。默认动作为退出程序。 |
SIGFPE | 8 | 发生致命的运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为0等所有的算法错误。默认动作为终止进程并产生core文件。 |
SIGKILL | 9 | 无条件终止进程。进程接收到该信号会立即终止,不进行清理和暂存工作。该信号不能被忽略、处理和阻塞,它向系统管理员提供了可以杀死任何进程的方法。 |
SIGALRM | 14 | 定时器超时,默认动作为终止进程。 |
SIGTERM | 15 | 程序结束信号,可以由 kill 命令产生。与SIGKILL不同的是,SIGTERM 信号可以被阻塞和终止,以便程序在退出前可以保存工作或清理临时文件等。 |
kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
用了就回不去了!