題 如何在離開終端時禁用作業查殺


當我離開終端時 按Ctrl+d 我得到了後台的工作 有停止的工作 這是第一次,但是當我按下時 按Ctrl+d 再次,這些工作被殺死了。

我可以以某種方式禁用後一個功能,以便bash 不會 如果有工作停止,請允許我離開終端?


4
2017-12-18 13:04


起源


你有沒有嘗試過 屏幕?您可以分離控制台甚至保持前台進程運行。雖然這不是你問題的答案,但它可能會有所幫助。 - fragmentedreality
你可以在命令結束時啟動工作並添加&符號嗎? tcpdump -w out.pcap & 這應該在退出shell之後運行 - 它對我有用 - mnmnc
對不起,我被誤解了。我說的是用ctrl-D停止的進程,而不是在後台啟動的進程。 - zefciu


答案:


跑 :

nohup <command> &

nohup是“沒有掛斷”

看到更新後的問題後,上述內容對您無效。您可以嘗試從命令行照常運行作業,然後執行 CTRL-Z (將會 暫停 運行程序),然後發出一個 bg %1 (%1是您創建的最後一份工作)。這將有效地讓您的程序在後台繼續。現在,您必須通過運行從會話中分離作業 disown -h。這將指示shell將正在運行的作業與會話關聯,並阻止將任何SIGHUP發送給它。


2
2017-12-18 14:29





我還沒有找到一種方法來阻止bash在第二次殺死工作 exit 但是為了幫助我按照我的提示添加了一個工作計數 https://stackoverflow.com/questions/12646917/show-job-count-in-bash-prompt-only-if-nonzero 這可能會讓我不太可能混搭ctrl-D


1
2018-05-20 10:27