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

像淘宝类别网站怎么做厦门网站建设公司

像淘宝类别网站怎么做,厦门网站建设公司,小本本教你做网站,山西招标setsid 是一个在 Linux 和 Unix 系统中运行的命令,用于启动一个新的会话(session),并将指定的程序在这个新会话中运行。它的主要作用是让进程脱离当前终端(terminal)的控制,成为独立的守护进程&…

setsid 是一个在 Linux 和 Unix 系统中运行的命令,用于启动一个新的会话(session),并将指定的程序在这个新会话中运行。它的主要作用是让进程脱离当前终端(terminal)的控制,成为独立的守护进程(daemon)。


基本语法

setsid [options] command [arguments]

核心功能

  1. 创建新会话

    • 调用进程会成为新会话的领导者(session leader),并脱离原终端的控制。
    • 新会话没有关联的控制终端(即使程序尝试打开终端也会失败)。
  2. 脱离终端依赖

    • 即使父进程(如终端)退出,通过 setsid 启动的进程仍会继续运行。
  3. 避免进程被信号干扰

    • 例如,终端关闭时发送的 SIGHUP 信号不会影响 setsid 启动的进程。

常见用途

  1. 启动守护进程
    让程序在后台运行,不受终端关闭的影响:

    setsid your_command &
    
  2. 避免终端退出时进程被终止
    比如运行一个长时间任务:

    setsid ./long_running_script.sh
    
  3. 结合 nohup 使用
    双重保障(脱离终端 + 忽略 SIGHUP):

    setsid nohup your_command &
    

常用选项

选项说明
-c, --ctty设置新会话的控制终端(需特权,极少使用)
-w, --wait等待子进程结束,并返回其退出状态
-V, --version显示版本信息
-h, --help显示帮助文档

示例

  1. 启动一个后台服务并脱离终端:

    setsid /usr/local/bin/my_service
    
  2. 运行脚本并忽略终端信号:

    setsid ./script.sh > /dev/null 2>&1
    
  3. 结合 nohup 和重定向:

    setsid nohup python3 server.py > output.log 2>&1 &
    

与类似命令对比

命令作用
nohup忽略 SIGHUP 信号,但进程仍属于原会话(需配合 & 实现后台运行)。
disown将已运行的作业从 shell 的作业表中移除,避免终端退出时收到 SIGHUP
tmux/screen通过虚拟终端管理会话,功能更强大,适合交互式任务。

注意事项

  • setsid 不能直接用于已经运行的进程。若需将现有进程移到新会话,可使用 reptyr 等工具。
  • 如果命令本身会自行守护进程(如 nginxsshd),则无需额外使用 setsid

通过 setsid,你可以轻松实现进程的“后台持久化”,特别适合需要长期运行的服务或任务。


忽略 SIGHUP 是什么意思?

SIGHUP(Signal Hang Up)是 Linux/Unix 系统中的一种信号(Signal),默认行为是终止进程。当终端(Terminal)关闭或父进程退出时,系统会向该终端关联的所有进程发送 SIGHUP 信号,导致这些进程被终止。


1. 什么情况下会收到 SIGHUP?

  • 关闭终端窗口(SSH 断开、本地终端退出)。
  • 父进程退出(如 shell 退出)。
  • 手动发送 SIGHUPkill -HUP <PID>)。

2. 如何让进程忽略 SIGHUP?

方法 1:使用 nohup

nohup(No Hang Up)命令可以让进程忽略 SIGHUP 信号:

nohup your_command &
  • 输出默认重定向到 nohup.out
  • 进程不会因终端关闭而终止。

方法 2:使用 setsid

setsid 让进程运行在新的会话(Session),不受原终端影响:

setsid your_command
  • 进程完全脱离终端,不会收到 SIGHUP

方法 3:使用 disown

如果进程已经在运行,可以用 disown 让它脱离 shell 控制:

./your_command &
disown -h %1  # 让作业 1 忽略 SIGHUP

方法 4:使用 trap(在脚本内部)

在脚本中捕获并忽略 SIGHUP

#!/bin/bash
trap '' HUP  # 忽略 SIGHUP
your_command

3. 对比不同方法

方法作用机制适用场景
nohup忽略 SIGHUP简单后台任务
setsid创建新会话,脱离终端长期守护进程
disown从 shell 作业表移除已运行的进程
trap脚本内部处理信号自定义信号处理

4. 示例

(1)用 nohup 运行 Python 脚本

nohup python3 server.py > server.log 2>&1 &
  • 即使终端关闭,server.py 仍会运行,日志写入 server.log

(2)用 setsid 启动守护进程

setsid /usr/local/bin/my_daemon
  • my_daemon 完全脱离终端,不会因 SIGHUP 终止。

(3)用 disown 保护已运行进程

./long_task.sh &  # 后台运行
disown -h %1      # 忽略 SIGHUP
  • 即使终端退出,long_task.sh 也不会被终止。

5. 总结

  • SIGHUP 是终端关闭时发送的信号,默认会终止进程。
  • nohupsetsiddisowntrap 都可以让进程忽略 SIGHUP
  • setsid 最彻底,适合守护进程;nohup 适合简单后台任务。
http://www.dtcms.com/wzjs/189665.html

相关文章:

  • 做网站一个月30ip如何注册网站
  • 手机网站开发前台架构游戏推广员是诈骗吗
  • 免费签名设计软件南京百度关键字优化价格
  • 网站定制设计网页价格多少钱app拉新推广平台有哪些
  • 个性手绘个人网站模板下载小红书seo关键词优化多少钱
  • 做京东网站需要哪些手续费免费卖货平台
  • 浮梁网站建设营销推广是什么
  • 门户网站的建设公司长沙网
  • 网站开发整合编辑器娃哈哈软文推广
  • cms优秀网站设计案例seo云优化方法
  • 成都 网站设计新网站怎么做优化
  • 有谁认识做微网站的少儿编程
  • 手机ppt制作软件免费app优就业seo怎么样
  • 新疆建设教育协会网站长沙seo排名扣费
  • 北京知名网站建设公司排名网络营销与推广
  • 信誉好的镇江网站建设ai智能搜索引擎
  • 零基础学室内设计seo关键词查询
  • 网站收录很高网站建设小程序开发
  • 网站建设领域文章百度关键字
  • 婴幼儿用品网站开发意义谷歌推广教程
  • 石景山住房和建设委员会网站seo的工作原理
  • vps网站设置优化设计卷子答案
  • 哪个网站能接效果图做网站推广方式有哪些
  • 仲恺建设局网站如何快速推广自己的品牌
  • 随州网站建设哪家实惠宁夏百度公司
  • 店标设计logo设计seo排名优化推广报价
  • 淘宝放单网站怎么做的公司软文怎么写
  • 软件开发和网站开发百度推广客户端登录
  • 济南网站建设内容设计站长工具源码
  • 免费的招聘网站有哪些自动优化句子的软件