Bash

禁用 bash 中的作業控制 (CTRL-Z)

  • July 19, 2020

有時我會遇到這種情況,我不小心按了CTRL+Z並且我的應用程序消失在後台。我知道,我可以把它帶回來fg,所以這沒什麼大不了的。但我想知道job control無論如何要關閉它。在我的一生中,我不記得有什麼時候需要它,它在我看來只是過去的遺物。

這可以job control完全禁用嗎?或者我錯過了什麼,這個功能很有用?我將如何在我的.bashrc

更新:

我已經set +m按照@Falsenames 的建議進行了嘗試。但是,這僅在我在終端中鍵入時才有效。添加set +m到我.bashrc的沒有效果。

您可以將以下內容添加到命令行中以停止使用監視模式。

設置 +m

如果您以後真的需要 ctrl-z 功能,您只需鍵入“set -m”即可啟用對該會話的監控。

來自man bash。請注意,這是針對“-m”的,“+m”將該設置切換為禁用。

set [+abefhkmnptuvxBCEHPT] [+o option] [arg ...] 
....
-m
   Monitor mode. Job control is enabled. This option is on by default for interactive
   shells on systems that support it (see JOB CONTROL above). Background processes 
   run in a separate process group and a line containing their exit status is printed
   upon their completion. 

作為最後的努力,您可能希望手動編譯沒有“–enable-job-control”標誌的 bash 版本。這是來自 GNU的快速安裝指南。如果您確實選擇了這條路線,請不要替換 /bin/bash 以防萬一後台程序通過 bash 執行期望作業控制。相反,製作 /bin/bash.alt 或其他文件。您可以通過執行 usermod 或以 root 身份編輯 /etc/passwd 將您的預設 shell 更改為這個備用 shell。

引用自:https://unix.stackexchange.com/questions/137915