如何使用 Supervisor 管理你的进程

简介: **Supervisor** 是一款Python编写的进程管理工具,用于类Unix系统,确保应用服务持续运行。常用命令包括:`reload`(重新加载配置)、`status`(查看进程状态)、`shutdown`(关闭所有进程)、`start`和`stop`(控制单个进程)。在CentOS上安装Supervisor用`yum install -y supervisor`,配置文件通常在`/etc/supervisord.conf`。

在我们的开发生活中,常常需要让某些应用或服务持续运行。这时候,就需要一个能够帮助我们管理这些进程的工具。

Supervisor 是一个广泛使用的进程管理工具,它可以让你轻松管理和控制多个进程。

在本文中,我们将一起学习如何在 Linux 系统中安装和使用 Supervisor,确保你的应用或服务能够无忧无虑地运行。

什么是 Supervisor?

Supervisor 是一个客户端/服务器系统,它允许其用户监视和控制类 Unix 操作系统上的一组进程。它是用 Python 编写的,因此在很多 Linux 发行版中都非常容易安装。

Supervisor 的常用命令

在深入了解如何在特定的环境下安装和配置 Supervisor 之前,让我们先熟悉几个最常用的 Supervisor 命令:

命令 说明
supervisorctl reload 重启 Supervisor(用于新增配置或修改后,重新加载配置)
supervisorctl status <程序名> 查看某个程序状态,不加程序名查看所有任务状态
supervisorctl shutdown 关闭所有由 Supervisor 管理的进程
supervisorctl start <程序名> 启动指定程序
supervisorctl stop <程序名> 停止指定程序

在阿里云 CentOS 7.6 上 安装 Supervisor

安装 Supervisor

yum install -y supervisor

查看和修改配置文件

安装完成后,让我们来查看 Supervisor 的主配置文件 supervisord.conf

cat /etc/supervisord.conf

重点关注文件中的 include 部分,这告诉 Supervisor 从哪里读取额外的配置文件:

[include]
files = supervisord.d/*.ini

添加自定义进程配置信息

创建一个新的配置文件,用来定义我们的应用进程:

; vim /etc/supervisord.d/larablog.ini

[program:larablog-horizon]
process_name=%(program_name)s
command=php /www/wwwroot/larablog/artisan horizon
autostart=true
autorestart=true
user=www
redirect_stderr=true
stdout_logfile=/www/wwwroot/larablog/storage/logs/worker.log

更新和启动进程

更新 Supervisor 配置,以包括我们的新服务:

sudo supervisorctl update

若遇到启动错误,如 socket.error 报错,试着直接启动 supervisord

sudo supervisord -c /etc/supervisord.conf

# 然后再次尝试执行重载配置命令
sudo supervisorctl update

查看进程状态

最后,我们可以查看进程的状态,确认服务是否被正确启动:

sudo supervisorctl status

在 Ubuntu 上 安装 Supervisor

安装和配置 Supervisor 在 Ubuntu 系统上的流程与在 CentOS 上类似,但使用的包管理器为 apt

sudo apt-get install supervisor

随后,添加和更新进程配置的流程相同,只是配置文件可能位于不同的目录。在 Ubuntu 上,路径可能是 /etc/supervisor/conf.d/

添加自定义配置信息

; vim /etc/supervisor/conf.d/larablog.conf

[program:larablog-horizon]
process_name=%(program_name)s
command=php /www/wwwroot/larablog/artisan horizon
...

接着使用 sudo supervisorctl update 来加载新配置,使用 sudo supervisorctl status 来查看服务状态。

结语

无论你的服务器运行在哪个 Linux 发行版本上,Supervisor 都是一个强大且灵活的工具,可以帮助你管理后台进程。通过简单的配置,你可以确保你的应用和服务能够稳定运行,即使在遇到突发问题时也能自动恢复。

希望这篇指南能帮助你更好地理解和使用 Supervisor

相关文章
|
1月前
|
Prometheus 监控 Cloud Native
使用supervisor守护Prometheus进程
使用supervisor守护Prometheus进程
|
1月前
使用supervisor守护freeswitch进程
使用supervisor守护freeswitch进程
|
2月前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
169 1
|
3月前
|
数据可视化 API 开发工具
详细解读cesi+supervisor可视化集中管理服务器节点进程
详细解读cesi+supervisor可视化集中管理服务器节点进程
80 0
|
4月前
|
存储 Java 调度
Java多线程基础-1:通俗简介操作系统之进程的管理与调度
操作系统是一个复杂的软件,具备许多功能。其中,进程的管理与调度是与我们密切相关的。本文将对操作系统功能中进程管理与调度作出介绍。
44 0
|
4月前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
130 2
|
4月前
|
存储 Linux 程序员
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
279 0
|
2月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
2月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
71 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)

相关实验场景

更多