如何在 Linux 中關閉 SSH 客戶端後防止後臺程序停止?
Linux 中的後臺程序是一個獨立於 shell 執行的程序。它使我們能夠離開終端視窗,而它仍然在後臺執行,無需使用者的任何互動。
Nginx 和 Apache Web 伺服器是用於提供影像和動態內容的後臺程序的最常見示例。
在 Linux 中,我們只需在程序後面附加符號 **&** 即可將其在後臺啟動。
請考慮以下示例:
sleep 10000 &
在上述命令中,我們使用了 sleep 語句,該語句將在我們剛剛在語句後面寫入的指定時間內執行,最後以 & 符號結尾以在後臺執行程序。
輸出
immukul@192 ~ % sleep 10000 & [1] 24101
現在程序正在後臺執行。我們還可以使用以下命令檢查程序:
jobs
輸出
immukul@192 ~ % jobs [1] running sleep 10000
現在我們知道了什麼是後臺程序以及如何執行它,我們現在可以專注於如何在關閉 **ssh** 連線後維護程序狀態。
最廣泛使用的方法是使用 Linux 提供的 **nohup** 命令。它代表“no hang up”(不掛斷),其主要目的是執行命令,使其忽略 **hangup** 訊號,因此即使 **ssh** 連線斷開也不會停止。
只需將以下命令寫入終端,即使 **ssh** 連線斷開,您的程序也不會被終止:
nohup process_name &
在某些情況下,我們希望以較低的優先順序執行任務,在這種情況下,我們使用以下命令:
nohup nice process_name &
**nice** 命令允許我們以較低的優先順序執行程序。
另一種實現相同解決方案的方法是使用 **GNU Screen**,可以在此 連結 中找到。GNU Screen 允許我們在伺服器上斷開連線,同時所有程序將繼續在後臺執行。
另一種方法是建立雙叉,在這種情況下,後臺程序不會終止,請將以下命令執行到終端:
((mycommand &)&)
廣告