Linux运维工具Supervisor的安装使用
Supervisor是一个进程管理工具,可以方便的启动、关闭、重启进程,并且可以在进程意外退出时自动重启进程。本文将介绍如何在Linux系统上安装并使用Supervisor。
安装
Supervisor可以使用pip安装,使用以下命令安装:
pip install supervisor
安装完成后,我们可以使用以下命令生成配置文件:
echo_supervisord_conf > /etc/supervisor/supervisord.conf
配置
打开/etc/supervisor/supervisord.conf
文件,它包含了一个示例配置,我们可以根据自己的需要进行修改。
其中,[include]
部分可以指定将进程的配置文件放到哪个目录下,配置示例如下:
[include]
files = /etc/supervisor/conf.d/*.conf
上面的配置表示将所有以.conf
结尾的文件放到/etc/supervisor/conf.d/
目录下作为进程的配置文件。
使用
启动Supervisor
在配置好了supervisord.conf
文件后,我们可以使用以下命令启动Supervisor:
supervisord -c /etc/supervisor/supervisord.conf
如果Supervisor配置文件在默认目录下,则可以使用以下命令启动:
supervisord
管理进程
我们可以使用Supervisor管理进程,以下是常见的命令:
-
启动/重启进程:
supervisorctl start/restart <process-name>
。其中,<process-name>
是进程的名称。 -
停止进程:
supervisorctl stop <process-name>
-
查看进程状态:
supervisorctl status
示例
示例1:启动一个Python程序
假设我们有一个Python程序,文件名为sample.py
,代码如下:
while True:
print('Hello World')
我们可以使用以下配置启动这个程序:
在/etc/supervisor/conf.d/
目录下创建一个配置文件sample.conf
,输入以下内容:
[program:sample]
command=/usr/bin/python /path/to/sample.py
directory=/path/to
autostart=true
autorestart=true
stderr_logfile=/var/log/sample.err.log
stdout_logfile=/var/log/sample.out.log
user=nobody
-
command
: 启动命令,包括Python解释器和Python程序的路径。 -
directory
: 执行命令的目录。 -
autostart
: 是否随Supervisor启动而启动。 -
autorestart
: 是否意外退出后自动重启。 -
stderr_logfile
: 错误日志文件路径。 -
stdout_logfile
: 输出日志文件路径。 -
user
: 进程运行的用户,需要有读写权限。
我们可以使用以下命令启动这个进程:
supervisorctl start sample
示例2:启动一个Node.js程序
假设我们有一个Node.js程序,文件名为server.js
,代码如下:
const http = require('http');
const port = 3000;
const requestHandler = (request, response) => {
console.log(request.url);
response.end('Hello Node.js Server!');
};
const server = http.createServer(requestHandler);
server.listen(port, (err) => {
if (err) {
return console.log('Error occurs: ', err);
}
console.log(`Server is listening on ${port}`);
});
我们可以使用以下配置启动这个程序:
在/etc/supervisor/conf.d/
目录下创建一个配置文件nodejs.conf
,输入以下内容:
[program:nodejs]
command=npm start
directory=/path/to/nodejs-project/
autostart=true
autorestart=true
stderr_logfile=/var/log/nodejs.err.log
stdout_logfile=/var/log/nodejs.out.log
user=nobody
-
command
: 启动命令,包括npm start
命令。 -
directory
: 执行命令的目录。 -
autostart
: 是否随Supervisor启动而启动。 -
autorestart
: 是否意外退出后自动重启。 -
stderr_logfile
: 错误日志文件路径。 -
stdout_logfile
: 输出日志文件路径。 -
user
: 进程运行的用户,需要有读写权限。
我们可以使用以下命令启动这个进程:
supervisorctl start nodejs
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux运维工具Supervisor的安装使用(进程管理工具) - Python技术站