nohup後台執行程式

2022-05-07 22:18:14 字數 1360 閱讀 4944

問題描述:

開啟終端,使用nohup後台啟動服務之後,只要關掉終端,服務就down了

期望結果:

關掉終端後,服務依然後台保持執行

技術分析:

unix/linux下一般想讓某個程式在後台執行,很多都是使用&在程式結尾來讓程式自動執行;但如果要想在退出終端後,程式依然還在後台執行,則要用nohup與&組合來實現。

nohup 命令

用途:不結束通話地執行命令

語法:nohup command [選項 引數]  &

描述:nohup 命令執行由 command引數和任何相關的arg引數指定的命令,忽略所有結束通話(sighup)訊號。在登出後使用 nohup 命令執行後台中的程式:要執行後台中的 nohup 命令,需要新增&到命令的尾部。

日誌記錄:

無論是否將 nohup 命令的輸出重定向到終端,輸出都將附加到當前目錄的nohup.out 檔案中。如果當前目錄的nohup.out檔案不可寫,輸出重定向到$home/nohup.out檔案中。如果沒有檔案能建立或開啟以用於追加,那麼 command 引數指定的命令不可呼叫。

使用時注意:

在當shell中提示了nohup成功後,還需要按終端上鍵盤任意鍵退回到shell輸入命令視窗,然後通過在shell中輸入exit來退出終端;如果在nohup執行成功後直接點關閉程式按鈕關閉終端的話,這時候會斷掉該命令所對應的session,導致nohup對應的程序被通知需要一起shutdown,起不到關掉終端後呼叫程式繼續後台執行的作用

nohup的其它一些使用命令

ctrl + z 可以將乙個正在前台執行的命令放到後台,並且處於暫停狀態。 ctrl+c 終止前台命令。 jobs 檢視當前有多少在後台執行的命令。

jobs -l選項可顯示所有任務的pid,jobs的狀態可以是running, stopped, terminated。但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的程序標識。

簡單的說就是:

nohup command >run.log&

回車輸入exit命令退出終端

關閉shell

參考文件:nohup+命令+& 【退出終端後,程式依然在後台執行】

nohup後台執行程式

1 bin bash 2 ulimit s 2621400 3 ulimit c 2048000 4 sleep25 killall 9 ljyx sghall new 6 sleep 27 trap 12 3248 nohup ljyx sghall new ljyx sghall new.log...

後台執行程式 nohup命令

在應用unix linux時,我們一般想讓某個程式在後台執行,於是我們將常會用 在程式結尾來讓程式自動執行。比如我們要執行mysql在後台 usr local mysql bin mysqld safe user mysql 可是有很多程式並不想mysqld一樣,這樣我們就需要nohup命令,怎樣使...

linux下後台執行程式 nohup

在linux中,如果要讓程序在後台執行,一般情況下,我們在命令後面加上 即可,實際上,這樣是將命令放入到乙個作業佇列中了 test.sh 1 17208 jobs l 1 17208 running test.sh 對於已經在前台執行的命令,也可以重新放到後台執行,首先按ctrl z暫停已經執行的程...