Ctrl当我通过+离开终端D并且后台有作业时,我会得到有作业已停止第一次,但是当我再次按下Ctrl+时D,作业就被终止了。
我可以以某种方式禁用后者的功能,以便 bash不会如果有停止的工作,允许我离开终端吗?
答案1
跑步 :
nohup <command> &
nohup 是“不挂断”
看到你更新的问题后,上面的方法对你不起作用。你可以尝试从命令行照常运行该作业,然后执行CTRL-Z
(这将暂停正在运行的程序),然后发出bg %1
(%1 是您创建的最后一个作业)。这将有效地让您的程序在后台继续运行。现在您必须通过运行 将该作业从您的会话中分离出来disown -h
。这将指示 shell 将正在运行的作业与您的会话分离,并阻止向其发送任何 SIGHUP。
答案2
我还没有找到一种方法来阻止 bash 在第二次杀死作业exit
,但为了帮助我按照以下方法在提示中添加了作业计数https://stackoverflow.com/questions/12646917/show-job-count-in-bash-prompt-only-if-nonzero这可能会让我不太可能乱按 ctrl-D