1、安装与启动
- yum 安装
1 | yum install supervisor |
- easy_install 安装
1
2
3wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
easy_install supervisor
- 配置supervisor
在etc下创建目录,并赋权限
1 | mkdir -m 700 -p /etc/supervisor |
在目录“ /etc/supervisor”下创建配置文件
1 | echo_supervisord_conf > /etc/supervisor/supervisord.conf |
修改配置文件
1 | vi /etc/supervisor/supervisord.conf |
在文件末尾添加,注意首尾需无空格,需顶格
1 | [include] |
在目录“/etc/supervisor”下创建dotnet core 进程配置文件存放目录“conf.d”
1 | mkdir -m 700 /root/supervisorConf |
如果需要在web控制台管理,则找到以下代码
1 | ;[inet_http_server] ; inet (TCP) server disabled by default |
修改代码,删除前面的分号,port改为*:90011
2
3
4[inet_http_server] ; inet (TCP) server disabled by default
port=*:9001 ; ip_address:port specifier, *:port for all ifa
username=user ; default is no username (open server)
password=123 ; default is no password (open server)
1 | vi /etc/init.d/supervisord |
粘贴以下内容1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105#! /usr/bin/env bash
# chkconfig: - 85 15
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PROGNAME=supervisord
DAEMON=/usr/bin/$PROGNAME
CONFIG=/etc/supervisor/$PROGNAME.conf
PIDFILE=/tmp/$PROGNAME.pid
DESC="supervisord daemon"
SCRIPTNAME=/etc/init.d/$PROGNAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
start()
{
echo -n "Starting $DESC: $PROGNAME"
$DAEMON -c $CONFIG
echo ".............start success"
}
stop()
{
echo "Stopping $DESC: $PROGNAME"
if [ -f "$PIDFILE" ];
then
supervisor_pid=$(cat $PIDFILE)
kill -15 $supervisor_pid
echo "......"
echo "stop success"
else
echo "$DESC: $PROGNAME is not Runing"
echo ".........................stop sucess"
fi
}
status()
{ statusport=`netstat -lntp|grep 9001|awk -F ' ' '{print $4}'|awk -F ':' '{print $2}'`
if [ -f "$PIDFILE" ];
then
supervisor_pid=$(cat $PIDFILE)
echo "$DESC: $PROGNAME is Runing pid=$supervisor_pid"
else
echo "$DESC: $PROGNAME is not Runing"
echo "please use command /etc/init.d/supervisord start Run the service"
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
添加自启动服务
1 | chkconfig supervisord on |
启动服务
1 | service supervisord start |
停止服务
1 | service supervisord stop |
centos7
创建supervisor 自启动服务
1 | vi /etc/systemd/system/supervisor.service |
编辑内容:
1 | [Unit] |
使配置生效
1 | systemctl daemon-reload |
设置服务开机启动,即设置enable
1 | systemctl enable supervisor.service |
启动服务
1 | systemctl start supervisor.service |
2、参考配置
/etc/supervisor/supervisord.conf
在文件最后添加
1
2[include]
files = /root/supervisorConf/*.conf/etc/supervisor/mongo.conf
1
2
3
4
5
6
7
8
9
10
11[program:mongo]
command=/home/mongodb/mongodb-linux/bin/mongod --dbpath /home/mongodb/mongodb-linux/data
stderr_logfile=/var/log/mongo.error.log
stdout_logfile=/var/log/mongo.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
redirect_stderr=true
startsecs=3/etc/supervisor/mysql.conf
1
2
3
4
5
6
7
8
9
10
11[program:mysql]
command=/usr/local/mysql/bin/mysqld_safe --defaults-file=/mysql/3306/my.cnf
stderr_logfile=/var/log/mongo.error.log
stdout_logfile=/var/log/mongo.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
redirect_stderr=true
startsecs=3
supervisor 监控的进程必须以非daemon 方式运行
如Nginx要用supervisor 管理需要在配置文件增加一行
/opt/nginx/conf/nginx.conf
1
daemon off;
/etc/supervisor/nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12[program:nginx]
command=/usr/local/nginx/sbin/nginx
directory=/usr/local/nginx
stderr_logfile=/var/log/nginx.error.log
stdout_logfile=/var/log/nginx.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
redirect_stderr=true
startsecs=3/etc/supervisor/redis.conf
1
2
3
4
5
6
7
8
9
10
11[program:redis]
command=/usr/local/bin/redis-server /opt/redis/redis.conf
stderr_logfile=/var/log/Redis.error.log
stdout_logfile=/var/log/Redis.stdout.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
redirect_stderr=true
startsecs=3
3、其他
更新新的配置到supervisord:
1 | supervisorctl update |
更新新的配置到supervisord
1 | supervisorctl update |
重新启动配置中的所有程序
1 | supervisorctl reload |
启动某个进程(program_name=你配置中写的程序名称)
1 | supervisorctl start program_name |
查看正在守候的进程
1 | supervisorctl |
停止某一进程 (program_name=你配置中写的程序名称)
1 | pervisorctl stop program_name |
重启某一进程 (program_name=你配置中写的程序名称)
1 | supervisorctl restart program_name |
停止全部进程
1 | supervisorctl stop all |