Linux後台執行程式

2021-08-21 16:30:12 字數 523 閱讀 4055

在我們平常的時候執行程式的時候會產生很多的資訊,這些資訊有時候有用,有時候沒用,不過這些資料都會在該程式的log中儲存,所以把這些資訊放在前台就不是很好。

我們可以將指令碼放在後台執行,不要將這些資訊顯示出來。

將shell放入後台執行

比如:指令碼名稱:storm.sh

後台執行: storm.sh &

這樣就會放入後台執行不占用前台的使用,他會返回給你乙個程序號

檢視程序的時候就是:ps -ef|grep bash

後入後台之後就會發現即使你停掉了之前開啟指令碼的視窗,指令碼也會掛掉,因為視窗在關閉的時候就會給程序傳送結束通話訊號(sighup)

nohup命令

不結束通話的執行命令,忽略所有結束通話(sighup)訊號。

所以即使關閉了視窗也不會關閉

執行指令碼:

nohup sleep.sh &

啟動之後會在當然目錄下生成乙個nohup.out的日誌檔案,裡面記錄了相關資訊

Linux後台執行程式

shell command dev null 2 1 最後乙個符號 意思是讓程式在後台執行。dev null 的作用是將標準輸入轉向null,這樣就忽略當前的指令碼標準輸出。2 1 的作用是將標準錯誤連線至標準輸出,也將被忽略。一直不明白1 2的作用。原來!作業系統預設指定3個檔案 0標準輸入 1標...

Linux 後台執行程式

nohup mqtt dev null 2 1 的意思是在後台執行,在執行 a.out 的時候,即使你用ctrl c,那麼a.out照樣執行 因為對sigint訊號免疫 但是要注意,如果你直接關掉shell後,a.out程序同樣消失。nohup的意思是忽略sighup訊號,所以當執行nohup a....

Linux後台執行程式

jobs 檢視任務,返回任務編號n和程序號 bg n 將編號為n的任務轉後台執行 fg n 將編號為n的任務轉前台執行 ctrl z 掛起當前任務 ctrl c 結束當前任務注 如果要使在前台執行任務放到後台執行,則先要用ctrl z掛起該任務,然後用bg使之後臺執行。到後台執行的程序,其父程序還是...