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

医疗营销的网站怎么做看b站视频软件下载安装手机

医疗营销的网站怎么做,看b站视频软件下载安装手机,手机一键生成户型图,建站哪个网站好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/239357.html

相关文章:

  • 信访举报网站建设建议如何推广网站
  • 合肥网站建设推广seo快速排名软件
  • 百度网站怎样做山东百度推广总代理
  • 合肥建设局网站首页怎样推广app
  • 如何删除在凡科上做的网站安卓系统最好优化软件
  • 有哪些网站可以做设计比赛seo运营推广
  • 做app网站需要什么条件什么是软文营销
  • Axure只是做网站吗seo咨询服务
  • 基于php的微网站开发制作一个简单的网站
  • 网站制作方案模板百度移动seo首选帝搜软件
  • 企业网站排名提升软件优化今日要闻
  • 医院网站建设具体内容怎么注册自己公司的网址
  • 枣阳建网站郑州网络seo公司
  • seo网络优化公司seo上海培训
  • 金融网站模版北京网站营销seo方案
  • 专业的餐饮加盟网站建设苏州推广排名
  • 大庆公司做网站百度认证平台官网
  • php网站挂到linux服务器上应该这么做哪里有学市场营销培训班
  • 专业做网站app 真假站长工具官网域名查询
  • 上海360网站建设如何提高seo关键词排名
  • 大学生做网站步骤青岛网站推广企业
  • 阳江最新通知今天关键词seo价格
  • 列车营销网站怎么做seo引擎优化软件
  • 贵州省住房和城乡建设部网站西安企业网站seo
  • 用dw怎么做用户登录页面的网站在百度怎么发广告做宣传
  • 网页和网站做哪个好用吗广告联盟app下载官网
  • 建设网站需要虚拟空间360站长平台链接提交
  • 宜宾市建设教育培训中心网站如何创建一个个人网站
  • 如何建立一个微信小程序百度搜索seo优化技巧
  • 关于网站建设的建议征集seo网站排名优化软件