当前位置: 首页 > news >正文

linux c守护进程

在 Linux 中,守护进程(Daemon)是指在后台运行、不与用户交互的进程。它们通常通过 systemdinit(如 SysVinit)或 supervisord 等系统服务管理。

下面我将从 原理、创建方式、管理方式 和 常用工具 四个方面来解释 Linux 中的守护进程。

一、守护进程的原理

守护进程是在系统启动时自动运行的进程,通常:

不与用户交互 通过标准输入/输出(stdin/stdout/stderr)与系统通信 通常使用 fork() 创建子进程,以避免阻塞主线程 通常会监听某个端口或使用 socket 与外界通信

二、守护进程的创建方式

1. 使用 nohup 启动守护进程

nohup python my_script.py > output.log 2>&1 &
nohup:让进程在后台运行,即使用户退出终端也不会终止 > output.log:将标准输出重定向到文件 2>&1:将标准错误输出也重定向到标准输出 &:将进程放到后台运行

2. 使用 systemd 创建服务(推荐)

[Unit]
Description=My Daemon Service[Service]
ExecStart=/usr/bin/python3 /path/to/my_script.py
WorkingDirectory=/path/to/
StandardOutput=syslog
StandardError=syslog
Restart=on-failure[Install]
WantedBy=multi-user.target

然后执行:

sudo systemctl enable my_daemon.service
sudo systemctl start my_daemon.service

3. 使用 init.d(SysVinit)创建服务

sudo nano /etc/init.d/my_daemon
#!/bin/bash
case  + #引号 + $1 + #引号 +  instart)echo  + #引号 + Starting my daemon... + #引号 + sudo systemctl start my_daemon;;stop)echo  + #引号 + Stopping my daemon... + #引号 + sudo systemctl stop my_daemon;;restart)sudo systemctl restart my_daemon;;*)echo  + #引号 + Usage: $0 {start|stop|restart} + #引号 + exit 1
esac
exit 0

然后启用并启动服务:

sudo update-rc.d my_daemon defaults
sudo systemctl enable my_daemon
sudo systemctl start my_daemon

三、守护进程的管理方式

1. 使用 systemctl(推荐)

sudo systemctl status my_daemon
sudo systemctl restart my_daemon
sudo systemctl stop my_daemon
sudo systemctl enable my_daemon

2. 使用 ps 查看进程

ps aux | grep my_daemon

3. 使用 tophtop 管理进程

top -p <pid>

四、常用守护进程工具

工具 描述systemd 系统和服务管理工具,推荐用于现代 Linux 发行版supervisord 用于管理多个进程的守护进程nohup 用于在后台运行进程,即使用户退出终端也不终止init 旧式 SysVinit 系统的守护进程管理工具

五、示例:使用 supervisord 管理守护进程

1. 安装 supervisord

sudo apt install supervisor  # Debian/Ubuntu
sudo yum install supervisor  # CentOS/RHEL

2. 创建 supervisord 配置文件

[supervisord]
; 系统服务管理
; 启动所有服务
; 管理多个进程[program:my_daemon]
; 进程名称
command=/usr/bin/python3 /path/to/my_script.py
; 工作目录
directory=/path/to/
; 日志文件
stdout=log_file.txt
stdout.flushInterval=10
; 重试策略
stdout_logfile_maxsize=1024
; 重启策略
autostart=true
autorestart=true
starttimeout=5
stopsignals=INT

3. 启动 supervisord

sudo supervisord

总结

类型 描述 常用工具守护进程 在后台运行的进程 systemd, supervisord, nohup, init.d管理方式 通过命令行或服务管理 systemctl, ps, top工具推荐 systemd 是现代 Linux 的首选 systemd, supervisord

如需进一步了解某个工具或具体实现,欢迎继续提问!

文章转自:[明日方舟 ] (https://www.52mwyd.com/news/19423.html)

作者:游戏攻略,转载请注明原文链接:https://www.52mwyd.com/

http://www.jsqmd.com/news/44197/

相关文章:

  • linux c启动进程
  • 2025年比较好的小型过滤机TOP品牌厂家排行榜
  • 2025年靠谱的液压油滤油机厂家最新TOP实力排行
  • 2025年知名的小型滤油机TOP品牌厂家排行榜
  • 2025年比较好的mvr蒸发器厂家最新实力排行
  • 深入解析:PHP 后台通过权限精制飞书多维表格
  • 2025年口碑好的工业废水蒸发器TOP实力厂家推荐榜
  • 2025年靠谱的系泊缆绳厂家实力及用户口碑排行榜
  • midwayjs 动态加载组件的一种方法
  • 2025年湖南长沙矩阵运营/GEO运营/抖音短视频代运营/IP打造/引流获客/推广服务公司权威推荐榜单:专业机构综合评测
  • 2025年评价高的船用绳缆TOP品牌厂家排行榜
  • 2025年热门的船用绳缆厂家最新推荐权威榜
  • 2025年口碑好的真空干燥机厂家最新实力排行
  • 2025年口碑好的上海真空干燥机最新TOP厂家排名
  • .NET 10中C# 14和F# 10的新特性
  • 2025年质量好的精密部件视觉点数包装机最新TOP品牌厂家排行
  • linux c函数 chm
  • linux c写文件
  • linux c共享内存
  • 2025年靠谱的自动吨包机优质厂家推荐榜单
  • 2025年热门的山东吨包机厂家最新权威实力榜
  • 2025年评价高的管道加热带厂家推荐及选购指南
  • 【GitHub每日速递 20251119】免费开源全学段数学教材,打破教育资源获取壁垒!附文件合并及下载攻略
  • 2025年口碑好的蚀刻加热带厂家最新热销排行
  • AI论文生成器推荐:6款高效工具助力毕业论文轻松完成(2025最新测评)
  • 2025年评价高的木浆棉复合百洁布优质厂家推荐榜单
  • 2025年靠谱的木浆棉品牌厂家排行榜
  • 2025年靠谱的浮吊起重机行业内知名厂家排行榜
  • 2025年质量好的港口浮吊厂家推荐及选择指南
  • 2025年知名的杭州金蝶软件行业口碑榜