在 linux 和 macos 系統中,可通過以下方法后臺運行命令:添加 ‘&’ 符號于命令末尾。使用 nohup 命令忽略掛斷信號。利用 screen 命令創建虛擬終端會話。使用 tmux 命令創建更強大的虛擬終端會話。使用 setsid 命令脫離原有會話,防止命令因會話終止而終止。
如何在命令行中后臺運行命令
在 Linux 和 macos 系統中,使用以下方法可以將命令后臺運行:
1. 添加 ‘&’ 符號
在命令的末尾添加一個 & 符號,即可讓命令在后臺運行。例如:
$ sleep 100 &
登錄后復制
2. 使用 nohup 命令
nohup 命令可以忽略掛斷信號,讓命令在后臺持續運行。用法如下:
$ nohup <command> &
登錄后復制
例如:
$ nohup Python my_script.py &
登錄后復制
3. 使用 screen 命令
screen 命令可以創建多個虛擬終端會話。在會話中運行命令后,斷開會話時命令仍會繼續在后臺運行。用法如下:
$ screen (在 screen 會話中) $ <command> (按住 Ctrl + a 然后按 d 退出會話)
登錄后復制
4. 使用 tmux 命令
tmux 命令與 screen 類似,但更加強大。它也可以創建虛擬終端會話,讓命令在后臺持續運行。用法如下:
$ tmux (在 tmux 會話中) $ <command> (按住 Ctrl + b 然后按 d 退出會話)
登錄后復制
5. 使用 setsid 命令
setsid 命令可以創建新的會話并使命令脫離原有會話。這可以防止命令因原有會話終止而終止。用法如下:
$ setsid <command> &
登錄后復制
注意事項:
- 使用后臺運行的命令時,輸出不會顯示在終端中。
- 如果在關閉終端后希望繼續后臺運行的任務,需要使用 nohup、screen 或 tmux 等工具。
- 對于需要輸入的命令,可以使用 expect 或 autoexpect 等工具來實現后臺自動化輸入。