linux进程管理工具的使用(supervisorctl、systemd、init.d、Upstart、Monit、runit、Daemontools)

本文详细介绍了Supervisor、systemd、init.d、Upstart、Monit、runit和Daemontools这几种在IT系统中常用的进程管理和服务控制工具,包括安装、配置和在Python中使用的示例。
摘要由CSDN通过智能技术生成

1、supervisorctl

这是Supervisor提供的命令行客户端,Supervisor是一个进程控制系统。它用于在UNIX类操作系统上控制和监视进程。它通常用于服务器环境中管理长时间运行的进程。

Supervisor 是一个用于监控和控制 UNIX 系统上的进程的程序。它不是大多数 UNIX 系统的标准部分,因此通常需要单独安装

ubuntu环境安装:

sudo apt-get update
sudo apt-get install supervisor

centos环境安装:

sudo yum install supervisor

添加配置文件:

/etc/supervisor/supervisord.conf

启动服务:

sudo service supervisor start
sudo systemctl start supervisor

在python程序中运行方式:

1)os.system

os.system("supervisorctl stop servername")

  2) subprocess

 

2、systemd

  • systemd 是现代 Linux 系统上的一个标准进程管理和初始化系统,它用于替代传统的 SysV init 系统。
  • 它通过使用称为 systemctl 的命令行工具来管理服务和系统资源

 特点

  • 使用 systemctl 命令进行服务管理。
  • 支持快速并行启动。
  • 依赖关系管理,确保服务按正确的顺序启动。
  • 系统状态和日志管理。
  • 定时任务(替代cron)
  • 配置文件:位于 /etc/systemd/system/
  • 命令示例
  • systemctl start service_name //启动服务。
    systemctl stop service_name  //停止服务。
    systemctl enable service_name //设置服务开机自启。
    systemctl status service_name //查看服务状态。

    在python程序中运行方式:

      1)os.system

service_name = "nginx"
os.system(f"systemctl restart {service_name}")

     2) subprocess

import subprocess

service_name = "nginx"
result = subprocess.run(["systemctl", "status", service_name], stdout=subprocess.PIPE)
print(result.stdout.decode())

3、init.d

  • systemd 出现之前,许多 UNIX 和 Linux 系统使用了名为 init.d 的传统初始化系统。
  • init.d 脚本通常位于 /etc/init.d/ 目录下,可用于启动、停止、重启和管理各种服务。

 特点

  • 脚本位于 /etc/init.d/ 目录。
  • 服务启动顺序由脚本名称前的数字决定。
  • 支持基本的启动、停止、重启服务操作。

命令示例

  • /etc/init.d/service_name start:启动服务。
  • /etc/init.d/service_name stop:停止服务。

在python中的运行方式:

1)os.system

import os

service_name = "/etc/init.d/nginx"
os.system(f"{service_name} stop")

2)subprocess

import subprocess

service_name = "/etc/init.d/nginx"
result = subprocess.run([service_name, "start"], stdout=subprocess.PIPE)
print(result.stdout.decode())

4、Upstart

  • Upstart 是一个事件驱动的替代传统 init 系统,由 Ubuntu 开发。
  • 它被设计为更灵活和适应更多现代计算环境的要求,尤其是在处理异步和并发启动的场景
  • 特点
    • 强调服务的事件驱动启动。
    • 更好地处理异步操作。
    • 支持自动重启崩溃的服务。
  • 配置文件:位于 /etc/init/
  • 命令示例
    • start service_name:启动服务。
    • stop service_name:停止服务。

在python中的运行方式:

1)os.system

import os

service_name = "nginx"
os.system(f"start {service_name}")

2)subprocess

import subprocess

service_name = "nginx"
result = subprocess.run(["stop", service_name], stdout=subprocess.PIPE)
print(result.stdout.decode())

5、Monit

  • Monit 是一个小型的开源工具,用于管理和监控 UNIX 系统上的进程、程序、文件、目录和文件系统。
  • Monit 可以用来自动修复问题,如重启失败的服务,或者在检测到问题时发送警报。
  • 特点
    • 实时监控服务和系统资源。
    • 自动故障恢复。
    • 简单的配置和使用。
    • 支持通过邮件或其他方式发送警报。
  • 配置文件:通常位于 /etc/monit/monitrc
  • 命令示例
    • monit start service_name:启动服务监控。
    • monit stop service_name:停止服务监控。

在python中的运行方式:

1)os.system

import os

os.system("monit status")

2)subprocess

import subprocess

result = subprocess.run(["monit", "reload"], stdout=subprocess.PIPE)
print(result.stdout.decode())

6、runit

  • runit 是一个跨平台的进程监视器和服务管理工具。
  • 它被设计为 SysV init 和其他重型管理工具的替代品,提供快速、可靠和简单的服务管理工具
  • 特点
    • 轻量级和快速。
    • 服务监控和自动重启。
    • 简单的脚本化接口。
  • 配置:服务脚本位于 /service/
  • 命令示例
    • sv start service_name:启动服务。
    • sv stop service_name:停止服务

 

在python中的运行方式:

1)os.system

import os

service_name = "nginx"
os.system(f"sv start {service_name}")

2)subprocess

import subprocess

service_name = "nginx"
result = subprocess.run(["sv", "status", service_name], stdout=subprocess.PIPE)
print(result.stdout.decode())

7、Daemontools

  • Daemontools 是一个用于监控和控制服务的集合工具。
  • 它提供了一种确保服务持续运行的简单方式
  • 特点
    • 保持服务持续运行。
    • 服务自动重启。
    • 简洁的设计。
  • 配置:服务通常在 /service/ 目录。
  • 命令示例
    • svc -u /service/service_name:启动服务。
    • svc -d /service/service_name:停止服务。

 

在python中的运行方式:

1)os.system

import os

service_name = "/service/nginx"
os.system(f"svc -d {service_name}")

2)subprocess

import subprocess

service_name = "/service/nginx"
result = subprocess.run(["svc", "-u", service_name], stdout=subprocess.PIPE)
print(result.stdout.decode())

  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heda3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值