<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Nohup</id>
	<title>Nohup - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Nohup"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Nohup&amp;action=history"/>
	<updated>2026-07-19T07:15:57Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Nohup&amp;diff=3350305&amp;oldid=prev</id>
		<title>imported&gt;InternetArchiveBot：​补救11个来源，并将0个来源标记为失效。) #IABot (v2.0.8</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Nohup&amp;diff=3350305&amp;oldid=prev"/>
		<updated>2021-02-08T06:12:48Z</updated>

		<summary type="html">&lt;p&gt;补救11个来源，并将0个来源标记为失效。) #IABot (v2.0.8&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;nohup &amp;#039;&amp;#039;&amp;#039; 是一个 [[可移植操作系统接口|POSIX]] 命令，用于忽略 &amp;lt;code&amp;gt;SIGHUP&amp;lt;/code&amp;gt; (&amp;quot;&amp;#039;&amp;#039;&amp;#039;sig&amp;#039;&amp;#039;&amp;#039;nal &amp;#039;&amp;#039;&amp;#039;h&amp;#039;&amp;#039;&amp;#039;ang &amp;#039;&amp;#039;&amp;#039;up&amp;#039;&amp;#039;&amp;#039;&amp;quot; 译：挂断信号) 。 &amp;lt;code&amp;gt;SIGHUP&amp;lt;/code&amp;gt;信号是终端注销时所发送至程序的一个信号。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;nohup&amp;lt;/code&amp;gt;命令，在默认情况下（非重定向时），会输出一个名叫 nohup.out 的文件到终端上。&lt;br /&gt;
&lt;br /&gt;
== 实例 ==&lt;br /&gt;
下例中，nohup用于忽略&amp;lt;code&amp;gt;SIGHUP&amp;lt;/code&amp;gt;信号，&amp;lt;code&amp;gt;[[Bash#进程管理|&amp;amp;]]&amp;lt;/code&amp;gt;使命令于后台执行，因此终端退出后命令仍旧执行。&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ nohup 命令名 &amp;amp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;值得注意，这种方法防止命令在注销时被忽略&amp;lt;code&amp;gt;SIGHUP&amp;lt;/code&amp;gt;信号，但，如果该命令对 标准I/O文件（stdin,stdout，或stderr）进行输入/输出，那么该命令仍旧可能被终端挂起。&amp;lt;ref&amp;gt;{{Cite web|title=Re: nohup/disown and logout|url=http://www.zsh.org/mla/users/2005/msg00152.html|accessdate=2009-06-10|date=2005-02-07|publisher=Zsh.org|archiveurl=https://web.archive.org/web/20090518121423/http://www.zsh.org/mla/users/2005/msg00152.html|archivedate=2009-05-18|dead-url=no}}&amp;lt;/ref&amp;gt; 详情请看下文的 &amp;#039;&amp;#039;阻止挂起&amp;#039;&amp;#039; 。&lt;br /&gt;
&lt;br /&gt;
另外，&amp;lt;code&amp;gt;nohup&amp;lt;/code&amp;gt; 命令常常和&amp;lt;code&amp;gt;nice&amp;lt;/code&amp;gt;命令一起执行，以调整命令/程序的优先级。&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ nohup nice 命令 &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 相关命令 ==&lt;br /&gt;
一些shell（如 [[Bash]]）提供一个 [[殼層內建指令|shell builtin]] ，可用于防止发送 [[SIGHUP]] 而影响现有的jobs，即使没使用 &amp;lt;code&amp;gt;nohup&amp;lt;/code&amp;gt;命令。&lt;br /&gt;
&lt;br /&gt;
=== disown ===&lt;br /&gt;
在Bash，可以通过&amp;lt;code&amp;gt;disown -h job名&amp;lt;/code&amp;gt;忽略 [[SIGHUP]] 信号；&amp;lt;code&amp;gt;disown&amp;lt;/code&amp;gt;命令将移除job表中特定的job，这也意味着该job不再接受任何信号。&amp;lt;ref&amp;gt;{{Cite web|title=Linux / Unix: disown Command Examples|url=https://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/|accessdate=|author=|date=|format=|publisher=|language=|archive-date=2020-05-18|archive-url=https://web.archive.org/web/20200518173924/https://www.cyberciti.biz/faq/unix-linux-disown-command-examples-usage-syntax/|dead-url=no}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|title=bash(1): GNU Bourne-Again SHell - Linux man page|url=https://linux.die.net/man/1/bash|accessdate=2020-01-10|work=linux.die.net|archive-date=2019-12-27|archive-url=https://web.archive.org/web/20191227012646/https://linux.die.net/man/1/bash|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===[[Control-Z]]===&lt;br /&gt;
通过 {{键盘按钮|Control|Z}} 可以将当前进程[[挂起]]（放置后台并暂停运行），可通过 &amp;lt;code&amp;gt;fg&amp;lt;/code&amp;gt; 命令恢复至前台，也通过&amp;lt;code&amp;gt;bg&amp;lt;/code&amp;gt;将挂起的进程后台运行。&lt;br /&gt;
&lt;br /&gt;
=== shopt ===&lt;br /&gt;
&amp;lt;code&amp;gt;shopt huponexit&amp;lt;/code&amp;gt;命令让Bash在登录用的shell退出时，发送[[SIGHUP]]信号至所有的jobs。&amp;lt;ref&amp;gt;{{Cite web|title=4.3.2 The Shopt Builtin|url=https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html|accessdate=|author=|date=|format=|publisher=|language=|archive-date=2019-12-26|archive-url=https://web.archive.org/web/20191226213228/http://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
需注意的是，在使用 [[IBM AIX|AIX]] 和 [[Solaris]] 系统的&amp;lt;code&amp;gt;nohup&amp;lt;/code&amp;gt;必须添加 &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt; 选项。不同于上述bash内置命令&amp;lt;code&amp;gt;disown&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;nohup -p&amp;lt;/code&amp;gt; 使用的是进程ID。&amp;lt;ref&amp;gt;[https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds4/nohup.htm IBM Knowledge Center] {{Wayback|url=https://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds4/nohup.htm |date=20141015050913 }}. 01.ibm.com (2015-03-26). Retrieved on 2015-04-13.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 阻止挂断 ==&lt;br /&gt;
注意，即便远程SSH会话注销或断开时，已经&amp;lt;code&amp;gt;nohup&amp;lt;/code&amp;gt;且在后台job可以避免被中止。&lt;br /&gt;
&lt;br /&gt;
另一个常见的问题是，SSH会话常常拒绝注销（或者挂起），因为它不愿意去丢失与后台job(s)进行交互的数据。&amp;lt;ref&amp;gt;{{Cite web|title=SSH Frequently Asked Questions|url=http://www.snailbook.com/faq/background-jobs.auto.html|accessdate=2009-06-10|publisher=Snailbook.com|archiveurl=https://web.archive.org/web/20090122224848/http://www.snailbook.com/faq/background-jobs.auto.html|archivedate=2009-01-22|dead-url=no}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|title=OpenSSH FAQ|url=http://www.openssh.com/faq.html#3.10|accessdate=2009-06-10|date=2005-09-20|publisher=Openssh.com|archiveurl=https://web.archive.org/web/20090710072355/http://www.openssh.com/faq.html#3.10|archivedate=2009-07-10|dead-url=yes}}&amp;lt;/ref&amp;gt; 该问题可通过 [[重定向 (计算机)|重定向]] 三次I/O流解决：&amp;lt;sup&amp;gt;待考证&amp;lt;/sup&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ nohup ./myprogram &amp;gt; foo.out 2&amp;gt; foo.err &amp;lt; /dev/null &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;同时需要注意，关闭SSH会话不意味着会发送SIGHUP信号至对应程序。 除此以外，还取决于 伪终端 是否被分配。&amp;lt;ref&amp;gt;{{Cite web|title=Bug 396 – sshd orphans processes when no pty allocated|url=https://bugzilla.mindrot.org/show_bug.cgi?id=396|accessdate=2009-06-10|date=|publisher=Bugzilla.mindrot.org|archive-date=2009-09-13|archive-url=https://web.archive.org/web/20090913205419/https://bugzilla.mindrot.org/show_bug.cgi?id=396|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 替代品 ==&lt;br /&gt;
&lt;br /&gt;
* 一个 终端复用器（[[terminal multiplexer]] ） 可以执行命令于一个单独的会话，该会话是分离当前的终端的，这意味着如果当前终端结束后，分离的会话以及其关联程序仍保持运行。 之后，一个新的终端可以和该会话连接。&amp;lt;ref&amp;gt;{{Cite web|title=Linux 技巧：让进程在后台运行更可靠的几种方法|url=http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html|accessdate=2020-01-14|date=2008-05-29|work=www.ibm.com|language=zh-CN|archive-date=2020-01-14|archive-url=https://web.archive.org/web/20200114074541/https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: 例如，下例调用了 [[GNU Screen|screen]] 将会运行&amp;quot;somescript.sh&amp;quot;于后台的一个独立的会话中：&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
$ screen -A -m -d -S somename ./somescript.sh &amp;amp;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[disown]] 的命令是用于清除job表中的jobs，或者标记jobs，以便在会话结束时不发送[[SIGHUP]]信号至标记了的jobs。&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
&lt;br /&gt;
* [https://web.archive.org/web/20061028142027/http://bama.ua.edu/cgi-bin/man-cgi?nohup+1 必须被显从Solaris的人页]&lt;br /&gt;
* [https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html Linux 技巧：让进程在后台运行更可靠的几种方法]{{Wayback|url=https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/index.html |date=20200114074541 }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Unix SUS2008实用工具]]&lt;/div&gt;</summary>
		<author><name>imported&gt;InternetArchiveBot</name></author>
	</entry>
</feed>