概述
在工作中,有時下班了,但是想執行拉取代碼或者代碼編譯,這種事情比較耗時,點電腦需要關閉,那就不得不後臺執行編譯或者運行命令,常見的有nohup或者screen兩種。
nohup
關閉終端時,會觸發SIGHUP信號,通過nohup來忽略這個信號,通過"&"把命令放到後臺執行,使用方式:
nohup <Command> [Arg] &
執行上述命令後,需要多敲一次回車鍵,讓命令回到後臺,可以通過jobs命令來查看當前放到後臺的命令,fg將後臺中的命令調至前臺繼續運行,bg將一個在後臺暫停的命令,變成繼續執行
如果後臺有多個命令,可以用fg/bg %jobnumber
將命令調出,%jobnumber
是通過jobs
命令查到的後臺正在執行的命令的序號。
此方法可用於關機時後臺編譯。
screen
Screen是一個可以在多個進程之間多路複用一個物理終端的窗口管理器。
使用方式:
直接在終端執行screen,會創建一個執行shell的全屏窗口,使用exit命令退出。使用方式:
screen -dmS <screen-name> <Command>
執行上述命令後,會創建一個狀態爲detached
的screen會話,執行對應的Command,screen-name
爲這個會話的名字,也可以不用S
參數,不指定會話名字。
只要不殺掉這個screen會話就可以一直在後臺運行,可以使用screen -ls
查看已創建的screen,使用screen -r <screen_pid>
可以恢復,進入到這個screen
會話。
此方法可用於關機時後臺編譯。
參考鏈接:https://blog.csdn.net/qq_28832135/article/details/79831700