子进程中的Ctrl + c会在脚本的前面杀死一个nohup'ed进程
我不知道这是否属于SO(因为它是一个编码错误),但我想你们会更了解所用软件的精妙之处(因此甚至可以考虑U&L)。 这是最小的代码脚本(请参阅完整脚本的编辑,这是我这样做的一个原因); #/bin/bash nohup {SERVERCOMMAND} > currentOutput.log 2>&1 & less +F currentOutput.log 它试图做的是在后台运行服务器,该服务器输出到日志文件。 然后我follow使用该日志文件less +F。这样做时,要退出此窗口,必须先按ctrl+,c然后才能按Q。 会发生什么事,当我ctrl+ c内部less命令(以停止tailing),它以某种方式杀死开始与服务器nohup在顶部!没有其他影响。我可以shift+ f重新开始跟踪日志(由于服务器被杀死,因此没有任何新信息),如果我命中Q了该脚本,其余脚本将正常执行。 你知道为什么会这样吗?如何避免它/我应该使用的其他东西? PS 服务器程序可能正在侦听^C,这可能是问题所在;有什么我可以阻止的吗?就像,当我{SERVERCOMMAND}独自(以阻塞方式)运行时,我可以按ctrl+ c,但不会立即杀死它;它打印Received ^C signal, shutting down(然后杀死自己)。这是我^C进入时发生的情况less(将最终结果Received ^C signal, shutting down写入日志)。 PPS 我一直在尝试许多事情(无济于事); 尝试通过更改从脚本断开标准输入 nohup {SERVERCOMMAND} > currentOutput.log 2>&1 & to nohup echo '' | {SERVERCOMMAND} > currentOutput.log 2>&1 & or …