Linux命令-setsid(运行程序于新的会话)
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仅是创建守护进程的第一步完整的守护进程还需要处理信号、关闭文件描述符、切换工作目录等。

相关新闻

AI智能体自主进化:从理论到电商客服实践

AI智能体自主进化:从理论到电商客服实践

1. 项目概述:AI智能体的自主进化与落地实践 去年我在开发一个智能客服系统时,发现现有AI助手只能按预设流程工作。当用户问出训练集之外的问题时,系统就会陷入"抱歉,我不明白"的死循环。这让我开始思考:什么…

2026/10/17 11:45:36 阅读更多 →
倒数的金融应用

倒数的金融应用

这是一个非常务实且有深度的问题。很多时候,我们在数学书上看到的“极限”、“倒数”和“不等式”看起来很抽象,但它们在金融股票市场和日常生活中,其实有着极其广泛且本质的应用。 以下为您梳理这些数学思想是如何落地的:一、 在…

2026/10/17 15:02:18 阅读更多 →
只有当 
a和 b同为正数(或者同为负数)时,取倒数才一定会让不等号的方向发生改变。

只有当 a和 b同为正数(或者同为负数)时,取倒数才一定会让不等号的方向发生改变。

这个规律初看确实会让人转不过弯来,但它的推导过程其实非常漂亮且易懂。 为了帮您彻底理解它,我们可以从生活直觉、严格代数推导以及快速变形三个角度来看:角度一:生活直觉 —— 分蛋糕法 假设我们有 1 个蛋糕,我们要把…

2026/10/17 15:02:18 阅读更多 →

最新新闻

工业AI落地实战:视觉质检、预测维护与工艺优化全解析

工业AI落地实战:视觉质检、预测维护与工艺优化全解析

1. 项目概述:当AI不再是PPT里的概念,而是产线上的“新工人” “他山之石可攻玉”这句老话,放在今天的工厂里,突然有了特别实在的分量。我跟过不下二十家不同规模的制造企业做智能化升级咨询,从长三角的精密零部件厂&am…

2026/10/17 15:01:40 阅读更多 →
三层交换机SVI实现VLAN间路由原理与实操

三层交换机SVI实现VLAN间路由原理与实操

1. 项目概述:为什么三层交换机是VLAN间通信的“默认答案”你手上有几台电脑,分别属于财务部、研发部和行政部,各自在不同的VLAN里——比如VLAN 10、20、30。它们彼此隔离,互ping不通,这是VLAN的基本安全逻辑。但问题来…

2026/10/17 15:01:40 阅读更多 →
RNN与LSTM结构深度拆解:从门控机制到嵌入式部署

RNN与LSTM结构深度拆解:从门控机制到嵌入式部署

1. 项目概述:为什么今天还要认真拆解RNN和LSTM的“老古董”结构?如果你在2024年打开任意一份主流AI岗位JD,大概率会看到“熟悉Transformer架构”被放在显眼位置;而“掌握RNN/LSTM”往往藏在“加分项”甚至“了解即可”的括号里。但…

2026/10/17 15:01:40 阅读更多 →
从RNN到Transformer:注意力机制原理、实现与工程实践全解析

从RNN到Transformer:注意力机制原理、实现与工程实践全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 15:01:40 阅读更多 →
RAG工程实践:从向量检索到大模型回答的完整链路

RAG工程实践:从向量检索到大模型回答的完整链路

先说个我自己的体会。接触AI Agent有一段时间之后,你会发现一个很尴尬的卡点:模型本身再聪明,它对你手头那堆私有资料、最新文档、历史工单是"一无所知"的。靠纯提示词硬灌,塞不了几千字;靠微调,…

2026/10/17 15:01:40 阅读更多 →
codex针对java+vue的Prompt提示词:用TaoToken统一Key跑通前后端联调

codex针对java+vue的Prompt提示词:用TaoToken统一Key跑通前后端联调

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 15:00:39 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →