我使用过的Linux命令之nohup - 执行其他命令,并且忽略SIGHUP信号

我使用过的Linux命令之nohup - 执行其他命令,并且忽略SIGHUP信号

本文链接:http://codingstandards.iteye.com/blog/835536   (转载请注明出处)

用途说明

nohup命令可以用来执行其他命令,并且忽略SIGHUP信号(run a command immune to hangups, with output to a non-tty。Run COMMAND, ignoring hangup signals.)当一个虚拟终端的网络连接断开时,操作系统向正在运行的程序发送SIGHUP信号(HUP = HangUP、挂断),默认情况下这个信号将使程序退出。

nohup命令通常用来把一个程序在后台来运行(需要&来配合),另外一个命令setsid也可以做到,如果系统中安装了screen,可以用screen来管理那些需要长时间运行的任务。本文后面提供的相关资料很详细的说明了这些命令,你也可以参考本系列之《我使用过的Linux命令之screen - 虚拟终端屏幕管理器 》。

 

常用参数

常用格式如下:

nohup command [arg] ... &

运行命令command,忽略SIGHUP信号,后台执行。输出信息会保存到nohup.out文件中。`nohup' runs the given COMMAND with hangup signals ignored, so that the command can continue running in the background after you log out.

 

     nohup COMMAND [ARG]...

 

以下内容来自 info nohup。
如果标准输入是终端,将被重定向为/dev/null。(If standard input is a terminal, it is redirected from `/dev/null' so that terminal sessions do not mistakenly consider the terminal to be used by the command.  This is a GNU extension; programs intended to be portable to non-GNU hosts should use `nohup COMMAND [ARG]... </dev/null' instead.)
如果标准输出是终端,将被重定向到nohup.out,采用追加模式,如果这个文件不能写,就重定向到$HOME/nohup.out文件。(If standard output is a terminal, the command's standard output is appended to the file `nohup.out'; if that cannot be written to, it is appended to the file `$HOME/nohup.out'; and if that cannot be written to, the command is not run.  Any `nohup.out' or `$HOME/nohup.out' file created by `nohup' is made readable and writable only to the user, regardless of the current umask settings.)
如果标准错误是终端,将被输出到标准输出同样的文件中。( If standard error is a terminal, it is redirected to the same file descriptor as the (possibly-redirected) standard output.)
nohup命令不会自动将命令后台运行,所以你必须自己在命令后面加上&,把命令变成后台执行。( `nohup' does not automatically put the command it runs in the background; you must do that explicitly, by ending the command line with an `&'.  Also, `nohup' does not alter the niceness of COMMAND; use `nice' for that, e.g., `nohup nice COMMAND'.)
要注意的是,跟在nohup后面的命令不能是内建命令。(COMMAND must not be a special built-in utility (*note Special built-in utilities::).)

退出码:(Exit status: 126 if COMMAND is found but cannot be invoked,127 if `nohup' itself fails or if COMMAND cannot be found,the exit status of COMMAND otherwise)

 

使用示例

示例一 后台执行命令并跟踪输出

[root@new55 test3]# nohup spider & tail -f nohup.out
[1] 18162
UUUUUUU [http://news.sina.com.cn/w/2010-09-20/084518138839s.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-20/090817680377s.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/164717673976s.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/075520496242.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/031720494028.shtml]
UUUUUUU [http://news.sina.com.cn/w/2010-06-18/101720497276.shtml]
UUUUUUU [http://i1.sinaimg.cn/dy/2010/0624/S12709T1277336424126.jpg]
UUUUUUU [hthttp://blog.sina.com.cn/s/blog_4a3131f00100j4d9.html?tj=1]
url=[hthttp://blog.sina.com.cn/s/blog_4a3131f00100j4d9.html?tj=1] schema[hthttp]
spider: test8.cpp:1051: int extract_url(const std::string&, PageInfo&, UrlPosMap&): Assertion `false' failed.
nohup: appending output to “nohup.out”
load spider.xml ok
<spider>
    <start>
        <url>http://www.sina.com.cn/</url>
    </start>
    <accept>
        <prefix>http://www.sina.com.cn/</prefix>
        <prefix>http://news.sina.com.cn/</prefix>
    </accept>
    <ignore>
        <type>IMG</type>
    </ignore>
</spider>
start node found
url http://www.sina.com.cn/
accept node found
prefix http://www.sina.com.cn/
prefix http://news.sina.com.cn/
ignore node found
type IMG

 

问题思考

相关资料

【1】einit   用nohup命令让Linux下程序永远在后台执行    
【2】IBM  Linux 技巧:让进程在后台可靠运行的几种方法    
【3】IBM  学习 Linux,101: 创建、监控和终止进程     
【4】IBM  linux 技巧:使用 screen 管理你的远程会话

 

返回 我使用过的Linux命令系列总目录

 

nohup原理详解:如何让Linux命令在终端关闭后持续运行 nohup是Linux中解决进程因SIGHUP信号被终止的核心机制,其本质是通过屏蔽挂断信号、重定向标准I/O、脱离会话控制三重手段,保障命令行程序的长期存活。它不创建后台进程,而是让目标进程忽略终端断开事件,从而实现‘终端无关’的稳定运行。这一机制直接支撑数据清洗、API服务、大文件下载等典型长时任务场景,是运维与开发人员必须掌握的基础生存技能。结合SIGHUP信号原理与nohup实际用法,可有效规避因SSH断连、窗口关闭导致的服务中断问题。 阅读详情

相关推荐

Linux 进程守护:nohup 与 & 的4个关键区别及SIGHUP信号深度解析

本文深入解析了Linux中nohup与&的4个关键区别,重点探讨了SIGHUP信号的作用机制及其对进程守护的影响。通过对比分析,详细介绍了nohup如何通过忽略SIGHUP信号实现进程持久化,以及&在后台运行中的局限性,帮助开发者正确选择和使用这两种进程管理方式。

weixin_33507732的博客 235

linux hup命令,Linux之nohup命令

1、nohup命令功能简介[root@vms002opt]#whatisnohupnohup(1)-runacommandimmunetohangups,withoutputtoanon-tty#运行一个不受hangups影响的命令,输出到一个非ttynohup(1p)-invokeautilityimmunetohangups#调用不...

weixin_32129195的博客 991

【Linux】Linux应用程序中需要忽略的信号:SIGPIPE、SIGHUP、SIGINT;以及信号详解

Linux信号详解;Linux应用程序中,常用信号的处理

郭老二 1953

Linux 让进程在后台运行-nohup命令

在工作中,经常需要执行一些耗时较长的任务,但会因为本地终端关闭或网络断开连接,导致任务中途执行失败。 可以使用: nohup 命令 & 来实现命令后台稳定运行,不受本地终端干扰 一、原理 当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。 nohup 的用途就是让提交的命令忽略 hangup 信号,先看一下 nohup 的帮助信息: N...

a200822146085的博客 1241

详解linux下nohup日志输出过大问题解决方案

主要介绍了详解linux下nohup日志输出过大问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Unraid小白必看:5分钟搞定OpenWrt软路由安装(附iStoreOS配置技巧)

本文为Unraid新手提供了一份详尽的OpenWrt软路由安装与配置指南。通过虚拟机技术,在Unraid系统上快速部署基于iStoreOS的软路由,详细讲解了旁路由与主路由两种模式的网络配置、性能优化技巧及常见故障排查方法,帮助用户充分利用闲置硬件,打造高性能、可定制的家庭网络中枢。

wine的专栏 484

后台执行 scp

man nohup nohup - run a command immune to hangups, with output to a non-ttynohup就是不挂起的意思( no hang up)。 nohup command > myout.file 2>&1 &在上面的例子中, 0 – stdin (standard input),1 – stdout (standard output

wz5891 717

谷歌浏览器崩溃排查:闪退、卡死、网页打不开的修复指南

浏览器多进程架构通过进程隔离、GPU加速和扩展沙箱提升网页渲染效率,但配置损坏、扩展冲突、显卡驱动异常或系统资源不足时,常会以闪退、卡死、白屏、内存占用飙升和能上微信却打不开网页等形式暴露。排查价值在于先分层定位系统、进程、配置扩展与网页内容,再用无痕模式、chrome://crashes、chrome://gpu和浏览器任务管理器收集证据,避免盲目重装。对办公、开发运维和日常维护场景,禁用扩展、关闭硬件加速、刷新DNS缓存、重置配置文件乃至干净重装,都是可复用的工程化处置手段。围绕谷歌浏览器崩溃的典型症状

weixin_34138056的博客 425

Linux nohup命令详解 忽略SIGHUP与后台常驻

本文详解Linux的nohup命令,它通过忽略SIGHUP信号使命令在终端关闭后仍能继续运行。文章涵盖:1) nohup解决的问题(防止终端断开导致进程终止);2) SIGHUP信号与nohup的关系;3) 默认重定向规则(stdin指向/dev/null,stdout/stderr输出到nohup.out);4) 基本语法与典型用法(配合&后台运行);5) 与其他方案(disown/setsid/tmux)的对比;6) 常见问题(日志位置、进程被杀原因等)。

REDcker的博客 700

Electron多窗口开发避坑指南:Pinia状态同步的3种解决方案对比

本文深入探讨了在Electron多窗口应用中实现Pinia状态同步的三种核心方案。针对Electron多窗口架构下状态隔离的挑战,文章对比了基础事件通信、共享存储以及智能Pinia插件等方案的优劣与适用场景,并提供了生产级的实现指南与选型建议,帮助开发者构建健壮高效的桌面应用。

spice的博客 479

ARM 汇编指令:LSL(逻辑左移) 和 LSR(逻辑右移)

ARM 汇编中的 LSL(逻辑左移)和 LSR(逻辑右移)是基础移位指令,分别实现二进制位的左移和右移操作。LSL 低位补0,等效于乘以2^n;LSR 高位补0,等效于无符号除以2^n。这两个指令可以单独使用或与其他指令结合(如ADD、MOV等),利用ARM的"桶形移位器"硬件实现高效运算。关键特性包括:移位范围0-31(LSL)或1-32(LSR),可选更新标志位,以及与其他指令结合时的无额外开销优势。LSR与ASR(算术右移)的主要区别在于高位填充方式,分别适用于无符号和有符号数处理

guigenyi的专栏 1810

Linux nohup后台启动/ 后台启动命令中nohup 、&、重定向的使用

在 Linux 系统中,经常需要让某些命令或脚本在后台运行,尤其是在远程服务器上操作时。例如,运行一个长时间的任务(如数据处理或 Web 服务),希望即使 SSH 会话断开,任务也能继续执行。为此,nohup和重定向是常用的工具组合。以下是它们的详细解释和使用方法。以下表格总结了nohup工具主要功能是否受终端关闭影响默认输出位置nohup忽略 SIGHUP,确保命令继续运行否nohup.out或将命令放入后台运行是(会终止)终端或指定文件重定向(2>&1控制输出位置,将输出保存到文件。

likuoelie的博客 1381

深入解析USB3.0一致性测试的关键技术与实践指南

本文深入解析了USB3.0一致性测试的核心技术与实践指南。文章阐述了测试如何确保设备在5Gbps高速传输下的信号完整性、电源管理合规性及协议兼容性,并提供了从测试系统搭建到完整流程执行的实战经验,帮助工程师有效应对高速信号、电源与兼容性三大核心挑战。

weixin_29164091的博客 278

Unix/Linux编程:SIGHUP信号

当会话首进程打开了一个控制终端之后它同时也成为了该终端的控制进程;当一个控制进程失去其终端连接后,内核会向其发送一个SIGHUP信号来通知它这一事实(还会发送一个SIGCONT信号以确保当该进程之前被一个信号停止时重新开始该进程)。一般来讲,这种情况可能会在下面两个场景中出现: 当终端驱动器检测到连接断开后,表明调制解调器会在终端行上信号丢失 当工作站上的终端窗口被关闭时。发生这种情况是因为最近打开的与终端窗口关联的伪终端的主侧的文件描述符被关闭了 SIGHUP信号的默认处理方式是终止进程。如果控制进程

OceanStar的博客 2668

搞定ESD(七):静电放电问题典型案例分析(二)

静电放电噪声耦合的方式主要是:传导耦合与辐射耦合,辐射耦合主要以磁场耦合、 电场耦合为主要形式。电场耦合发生的主要条件是:静电放电高频在参考地平面寄生电感中产生电平波动,平行于参考地平面上的较长信号布线就很容易通过分布电容发生电场耦合。根据高速信号回流路径的特性可知,其回流路径是贴近信号布线下方,或者信号两侧,若信号回流路径跨分割后,环路面积会随之增大;信号环路面积大从EMI角度看其空间辐射更强,从EMS角度看则更容易耦合外部噪声干扰(雷击浪涌、EFT、ESD、RS)。

记得诚 2801

STM32 之十三 看门狗(WDG)及低功耗下的处理

  最近在做低功耗项目时,遇到了看门狗不好处理的问题。在 ST 的各系列 MCU 中,看门狗应该算是使用配置起来最简单的一个外设了。我们通常仅需要配置很少的配置项,但是,一旦要配合低功耗模式则配置就比较麻烦了。MCU 中有两只狗,一只叫 Independent watchdog (IWDG);另一只叫 System window watchdog (WWDG)。下面是这两只狗的简单介绍! IWDG   IWDG 基本就等同于我们独立使用的看门狗芯片。最适合那些要求看门狗作为一个完全独立的进程在主应用程序之外

技术干货 7850

Linux中nohup的使用

之前因为需求,搭建的一个后台程序需要在Linux的服务器上挂载,在Linux服务器中,想要在后台运行程序,需要使用nohup命令来运行。 nohup命令 nohup的意思就是不挂断地运行命令,是no hang up的缩写,nohup命令忽略所有的挂断信号(SIGHUP) 语法: nohup Command [ Arg ... ] [ & ] 其中Command是指运行程序的命令,例如若要...

Alkaid的博客 2499

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

nohup 命令的简单理解

shell 命令的简单拓展

weixin_42151880的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

linux 的nohup & 和daemon 总结

今天和同事聊起了这个问题,就查阅了一下相关资料,总计如下   nohup nohup 用途:不挂断的运行命令 语法 : nohup command [arg] & 描述: 运行命令,忽略所有SIGHUP信号。 输出到当前目录的nohup.out文件中,如果当前目录不可写,就重定向到$HOME/nohup.out中  一般是要和&配合使用。 & 用户: 将一个程

fox1987的专栏 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Linux中nohup与&区别和命令执行输出重定向

1、nohup与&的区别 测试代码如下: 是一个输出hello与循环轮数的死循环程序,每输出一行就休眠1秒。 使用 ./a.out 前台运行程序,会是什么效果呢? 程序每隔一秒会在终端输出一个字符串。 此时如果键入Ctrl+C,程序会收到一个SIGINT信号,如果不做特殊处理,程序的默认行为是终止(如上图)。 使用 ./a.out& 后台运行程序,...

HelloWorld搬运工 4954

Linux 进程守护:nohup 与 & 信号处理差异详解(SIGHUP/SIGINT)

本文深入解析Linux中nohup与&命令的信号处理机制差异,重点探讨SIGHUP和SIGINT信号对进程的影响。通过对比分析单独使用和组合使用的效果,提供高级重定向技巧和进程管理实战方法,帮助系统管理员有效守护关键进程,避免终端断开导致的意外终止。

djph26741的博客 433

Linux SIGHUP信号详解

Windows 有自己的一套控制事件(Control Handlers),虽然功能类似,但不叫 SIGHUP,机制也不完全相同。这个命令实现一个完美的**“后台挂机(Background hang up)”**效果:人走了(断开连接),程序还在跑,而且所有的输出和报错都有据可查。关闭时(例如 SSH 连接断开、物理终端掉线),内核会自动向该终端关联的会话首进程发送 SIGHUP,进而导致该会话下的所有进程收到此信号。,它会自动帮你的程序屏蔽掉这个信号)。,而非操作系统的强制规定。,这是最容易混淆的地方。

星垂平野阔, 月涌大江流 460

linux后台执行命令&和nohup的区别使用

&的意思是在后台运行 当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh &。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中: c...

梧桐凰的博客 699

【Linux】nohup命令使用记录

说明 最近使用到了nohup命令,感觉这个命令还是挺常见的,就记录一下。 nohup 和 & 命令详解 noup 用途:不挂断的运行命令 语法:nohup Command [ Args…] [ &] 描述:nohup命令运行由Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的...

菜鸟sdut的博客 1574

nohup linux后台启动命令

nohup 案例 nohup和&的区别 参考链接 正文 回到顶部 nohup nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。 nohup 是 no hang up 的缩写,就是不挂断的意思。 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命

guoruijun_2012_4的专栏 1764
上一篇: 我使用过的Linux命令之telnet - 基于TELNET协议的远程登录工具
下一篇: 我使用过的Linux命令之trap - 在脚本中处理信号
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值