Linux 如果杀死包含单个nohup命令的bash脚本,会发生什么?

Linux 如果杀死包含单个nohup命令的bash脚本,会发生什么?,linux,bash,nohup,Linux,Bash,Nohup,我刚刚了解了到目前为止非常有用的nohup——我的工作不会因为ssh会话无意中断开而崩溃 有人能告诉我,如果我在提交一份nohup作业后执行ctrl-C,会发生什么情况吗?我希望它能继续运行。开始工作后,它说 $ nohup: appending output to ‘nohup.out' 但是,我不需要使用新的输入行来执行其他命令 有人能解释为什么在我的命令结束时需要& nohup sh -c 'for file in ../orig_data/merged/*Inp*.gz; do zca

我刚刚了解了到目前为止非常有用的
nohup
——我的工作不会因为ssh会话无意中断开而崩溃

有人能告诉我,如果我在提交一份
nohup
作业后执行
ctrl-C
,会发生什么情况吗?我希望它能继续运行。开始工作后,它说

$ nohup: appending output to ‘nohup.out'
但是,我不需要使用新的输入行来执行其他命令

有人能解释为什么在我的命令结束时需要
&

nohup sh -c 'for file in ../orig_data/merged/*Inp*.gz; do zcat $file | bowtie2 -p 8 -q -x hg_mm -U - -S "${file:20:-9}".sam; done' &


编辑:此nohup命令位于bash脚本中,作为
/job.sh
执行。因此,如果我杀死这个bash脚本,它是否也会杀死我的nohup命令?

任何shell命令末尾的&符号都会将进程放在后台,这样您就可以继续与终端交互,同时,您的命令会在后台执行

你的意思是
&
?我想你是说“The&sign”,而不是“The$sign”:)是的。编辑了我的答案。我在打电话。很难按右键。我发布的nohup命令在bash脚本中,所以这就是为什么它看起来不在后台运行,并且我无法键入新命令的原因。如果我杀死脚本,我的nohup命令会停止吗?不管怎样。如果在nohup之后有下一个命令(带&),它应该立即执行。&将您的命令作为后台进程运行(即在shell外部)。顺便说一句,一般来说,写得好的bash不需要使用
nohup
;任何
nohup
可以做的事情,你都可以自己做重定向和
disown
命令,而自己做重定向意味着你可以更好地控制日志发送到哪里。当你说“不带你到新的输入行”--新的输入行是输出行开头的
$
。由于
&
,nohup在后台运行,因此在
nohup
启动完成之前会打印提示。如果你再按一下回车键,你会得到一个新的提示。我把这个链接到了一个单独的副本,解释了这一点。这就是说,告诉你使用nohup的人可能对bash不太了解;有必要使用<代码> SH (更有限的shell),但是<代码> Bash 更具能力。例如,考虑:;dobowtie2-p8-q-xhg_mm-U--S“${file:20:-9}”.sam&1