如何设置Linux命令使程序在会话断开后继续运行?

2026-06-10 08:468阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1159个文字,预计阅读时间需要5分钟。

如何设置Linux命令使程序在会话断开后继续运行?

简介+说明+文本介绍Linux会话断开后不停止程序的方法。

概述+描述+当用户注销(logout)或网络断开时,终端会收到HUP(hangup)信号从而关闭所有子进程。因此,我们的解决方案有两种:


简介

说明

本文介绍Linux会话断开后不停止程序的方法。

概述

如何设置Linux命令使程序在会话断开后继续运行?

当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。

法1:nohup

说明

用ssh时,只能等命令运行完再关闭ssh对话,若关闭了会话,则命令会停止执行。

nohup:在退出ssh对话后仍然运行该命令。(使进程忽略hangup信号,从而持续执行。)

示例

用法:nohup xxx //xxx表示要运行的命令

法2:setsid

说明

setsid作用:使此进程不属于接收HUP 信号的终端的子进程,也就不会受到 HUP 信号的影响了。

setsid中的sid指的是session id,意指以该命令运行的进程是一个新的session,因此其父进程id不属于当前终端。实际上,setsid运行的进程,其父进程id(PPID)为1(init 进程的 PID)。

阅读全文

本文共计1159个文字,预计阅读时间需要5分钟。

如何设置Linux命令使程序在会话断开后继续运行?

简介+说明+文本介绍Linux会话断开后不停止程序的方法。

概述+描述+当用户注销(logout)或网络断开时,终端会收到HUP(hangup)信号从而关闭所有子进程。因此,我们的解决方案有两种:


简介

说明

本文介绍Linux会话断开后不停止程序的方法。

概述

如何设置Linux命令使程序在会话断开后继续运行?

当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。

法1:nohup

说明

用ssh时,只能等命令运行完再关闭ssh对话,若关闭了会话,则命令会停止执行。

nohup:在退出ssh对话后仍然运行该命令。(使进程忽略hangup信号,从而持续执行。)

示例

用法:nohup xxx //xxx表示要运行的命令

法2:setsid

说明

setsid作用:使此进程不属于接收HUP 信号的终端的子进程,也就不会受到 HUP 信号的影响了。

setsid中的sid指的是session id,意指以该命令运行的进程是一个新的session,因此其父进程id不属于当前终端。实际上,setsid运行的进程,其父进程id(PPID)为1(init 进程的 PID)。

阅读全文