Linux命令-setsid运行程序于新的会话快速参考基本语法安装 setsid常用选项实际应用场景setsid 与 nohup/ disown 对比在脚本中使用 setsid停止由 setsid 启动的进程故障排查总结快速参考setsid用于在新会话session中运行程序使程序脱离当前终端成为守护进程daemon。setsid通过调用setsid()系统调用使程序脱离当前终端的控制即使终端关闭程序也会继续运行。核心场景将前台程序转为后台守护进程脱离终端控制。基本语法# 基本语法setsid[选项]程序[参数...]# 在新会话中运行程序setsidsleep3600# 运行程序并输出到日志setsid myserver/var/log/myserver.log21安装 setsid# setsid 是 util-linux 包的一部分通常已预装# 如果未安装可以手动安装# Debian/Ubuntusudoaptupdatesudoaptinstallutil-linux# RHEL/CentOSsudoyuminstallutil-linux# Arch Linuxsudopacman-Sutil-linux# 验证安装whichsetsid setsid--version常用选项# -c, --close-all-files 关闭所有文件描述符setsid-cmyprogram# -f, --no-fork 不 fork直接替换当前进程不常用setsid-fmyprogram# -w, --wait 等待程序退出返回退出码setsid-wmyprogram# --help 显示帮助setsid--help# --version 显示版本setsid--version实际应用场景# 场景1手动将程序转为守护进程 # 问题运行前台程序关闭终端后程序退出# 解决使用 setsid# 错误做法sleep3600# 虽然后台运行但终端关闭后仍然会收到 SIGHUP# 正确做法setsidsleep3600# 现在即使关闭终端sleep 也会继续运行# 场景2启动服务器程序 # 启动一个简单的 HTTP 服务器Pythonsetsid python3-mhttp.server8080/var/log/py_http.log21# 验证psaux|grephttp.server# 场景3在脚本中创建守护进程 #!/bin/bash# 守护进程脚本示例LOG_FILE/var/log/mydaemon.log# 使用 setsid 启动守护进程setsid ./mydaemon$LOG_FILE21DAEMON_PID$!echo守护进程已启动PID:$DAEMON_PIDecho日志文件:$LOG_FILE# 场景4配合 nohup 使用 # nohup 也可以实现类似功能但 setsid 更彻底创建新会话# 使用 nohupnohupsleep3600# 使用 setsid更推荐setsidsleep3600setsid 与 nohup/ disown 对比# nohup忽略 SIGHUP 信号 # 优点简单# 缺点仍然在同一个会话中不是真正的守护进程nohupmyprogram# disown从 Shell 的作业表中移除 # 优点可以事后将程序转为后台# 缺点依赖于 Shell不适合脚本sleep3600disown# setsid创建新会话真正的守护进程# 优点彻底脱离终端适合脚本# 缺点命令稍复杂setsid myprogram# 总结 # 交互式使用 nohup 或 disown# 脚本中使用 setsid推荐# 需要输出日志setsid配合重定向在脚本中使用 setsid#!/bin/bash# 使用 setsid 创建守护进程的完整脚本DAEMRON_NAMEmydaemonDAEMRON_BIN/usr/local/bin/$DAEMRON_NAMEPID_FILE/var/run/$DAEMRON_NAME.pidLOG_FILE/var/log/$DAEMRON_NAME.log# 检查是否已在运行if[-f$PID_FILE];thenOLD_PID$(cat$PID_FILE)ifps-p$OLD_PID/dev/null21;thenecho错误$DAEMRON_NAME已在运行 (PID:$OLD_PID)exit1elseecho警告PID 文件存在但进程不存在清理...rm-f$PID_FILEfifi# 使用 setsid 启动守护进程echo正在启动$DAEMRON_NAME...setsid$DAEMRON_BIN$LOG_FILE21DAEMRON_PID$!echo$DAEMRON_PID$PID_FILEecho守护进程已启动PID:$DAEMRON_PIDecho日志文件:$LOG_FILEecho使用 kill$DAEMRON_PID停止守护进程停止由 setsid 启动的进程# 1. 查看进程psaux|grepmyprogram# 2. 获取 PIDPID$(pgrep myprogram)# 3. 停止进程kill$PID# 4. 如果无法停止强制终止kill-9$PID故障排查# 问题1setsid 后程序仍然退出# 原因程序自身有退出逻辑如配置文件错误# 解决查看程序日志tail-f/var/log/myprogram.log# 问题2setsid 后无法停止进程# 原因没有记录 PID# 解决使用 PID 文件记录setsid myprogramecho$!/var/run/myprogram.pid# 停止时kill$(cat/var/run/myprogram.pid)# 问题3setsid 不生效# 原因程序主动退出新会话# 解决检查程序是否调用了 setsid() 自身总结核心价值setsid是将程序转为守护进程的基础工具通过创建新会话使程序彻底脱离终端。最佳实践使用setsid program 启动守护进程配合日志重定向 log 21记录 PID 到文件echo $! pid.file在脚本中使用setsid而非nohup常用组合setsid program 启动守护进程setsid -w program等待程序退出setsid program log 21 重定向日志注意setsid仅是创建守护进程的第一步完整的守护进程还需要处理信号、关闭文件描述符、切换工作目录等。
企业数字化 ERP 产品动态
相关推荐
AI智能体自主进化:从理论到电商客服实践 1. 项目概述:AI智能体的自主进化与落地实践 去年我在开发一个智能客服系统时,发现现有AI助手只能按预设流程工作。当用户问出训练集之外的问题时,系统就会陷入"抱歉,我不明白"的死循环。这让我开始思考:什么… · 2026/11/10 23:17:00
倒数的金融应用 这是一个非常务实且有深度的问题。很多时候,我们在数学书上看到的“极限”、“倒数”和“不等式”看起来很抽象,但它们在金融股票市场和日常生活中,其实有着极其广泛且本质的应用。
以下为您梳理这些数学思想是如何落地的:一、 在… · 2026/10/25 20:07:11
GPT-5.4神经接口技术解析与企业级AI自动化实践 1. 项目概述:GPT-5.4的技术突破与行业影响上周三凌晨,OpenAI实验室突然在开发者社区丢下一枚"技术核弹"——GPT-5.4测试版悄然上线。这个代号为"AutoPilot"的版本最令人震撼的特性,是首次实现了AI模型对计算机系统的直接… · 2026/10/4 10:49:04
工厂上班用哪个电工证怎么报名?外省证能不能转过来全在这篇 工厂上班用哪个电工证怎么报名?外省证能不能转过来全在这篇 之前考的证在外省能不能转过来?你不是一个人。我有个老乡在郑州做电工,之前在山西考的低压电工证,结果到了河南找工作,企业一听是外省证,直接说不能用。他跑了几家单位,最后只能重新报名考试… · 2026/11/10 23:16:08
四川高压电工证怎么考?实操考试心里没底怕挂科?值不值得考? 四川高压电工证怎么考?实操考试心里没底怕挂科?值不值得考? 实操考试心里没底怕挂科?尤其是刚毕业的你,面对高压电工证的考试,既想抓住机会,又怕一不小心就挂掉。四川高压电工证怎么考?值不值得考?这些问题,其实很多人都在问。… · 2026/11/10 23:16:08
高级电工证和高级职称保姆级教程:实操考试心里没底怕挂科怎么办 高级电工证和高级职称保姆级教程:实操考试心里没底怕挂科怎么办 你是不是正为高级电工证和高级职称考试发愁?实操考试心里没底怕挂科?别慌,这篇保姆级教程帮你一一解决。 为什么高级电工证和高级职称要分开考?… · 2026/11/10 23:16:08
广东电工证贵州能用吗 考了多久拿证 广东电工证贵州能用吗 考了多久拿证 你是不是学历不高,担心自己报不了电工证?别急,今天就给你讲讲【广东电工证贵州能用吗】这件事,还有多久能拿到证,怎么考,怎么用,全给你安排清楚。不用纠结学历,只要符合条件,照样能考!… · 2026/11/10 23:15:08
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/10 2:16:10
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/10 17:46:39
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/10 17:11:43
丹寨电工证怎么考?内部消息透露报考条件和流程 丹寨电工证怎么考?内部消息透露报考条件和流程 急需特种作业证才能上岗找工作,这是很多电工朋友最真实的焦虑。尤其是像丹寨电工证这样的证书,直接影响你的职业发展和薪资待遇。但你知道吗?很多人都在报考过程中踩坑,有的甚至花了几千块最后白忙一场。今… · 2026/11/10 0:00:13
成都建筑电工证办理郑州报考避坑指南 成都建筑电工证办理郑州报考避坑指南 证书过期了不知道怎么复审延期?别慌!这篇文章手把手带你解决成都建筑电工证办理的难题,顺便避掉郑州报考的那些坑。不管你是刚拿到证的新手,还是准备复审的老电工,这波干货都别错过。… · 2026/11/10 0:00:13
梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 梅州低压电工证怎么考?怕被中介坑?手把手教你全国通用流程 你是不是正为梅州低压电工证发愁?不知道去哪报名,怕被中介骗钱,又担心证书是不是全国通用?其实,这些顾虑都是正常人会有的。今天我就从一个在开封房建工程一线干了几年的电工角度,手把手教你… · 2026/11/10 0:00:13
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 20:19:29
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 19:22:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/10 17:00:47