nohup 後台啟動程式,並輸出到指定日誌

2022-08-17 13:27:14 字數 4421 閱讀 3368

1.啟動程式並輸入到指定日誌

nohup python manage.py runserver 0.0.0.0:9090 > /data/zyj/xadstat/xadstat.log  2&>1 &

或者 nohup python manage.py runserver 0.0.0.0:800 >> run.log 2>&1 &

2.檢視當前程序號(可能會起兩個程序要殺死兩次)

3.殺死程序 kil -9 

unix/linux下一般比如想讓某個程式在後台執行,很多都是使用 & 在程式結尾來讓程式自動執行。

比如我們要執行weblogic在後台:

./startweblogic.sh &

但是加入我們很多程式並不象weblogic一樣做成守護程序,可能我們的程式只是普通程式而已,一般這種程式使用 &結尾。

但是如果終端關閉,那麼程式也會被關閉。

但是為了能夠後台執行,那麼我們就可以使用nohup這個命令。

比如我們有個startweblogic.sh需要在後台執行,那麼就使用nohup:

nohup ./startweblogic.sh &

嗯,證明執行成功,同時把程式執行的輸出資訊放到當前目錄的 nohup.out 檔案中去。

nohup 命令

用途:linux命令用法,不結束通話地執行命令。

語法:nohup command [ arg ... ] [ & ]

在登出後使用 nohup 命令執行後台中的程式。要執行後台中的 nohup 命令,新增 & ( 表示「and」的符號)到命令的尾部。

■場景執行nohup命令的時候,經常會出現下面這種沒有寫入許可權的錯誤。

■linux重定向:

0、1和2分別表示標準輸入、標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出。

在一般使用時,預設的是標準輸出,既1。當我們需要特殊用途時,可以使用其他標號。

例如,將某個程式的錯誤資訊輸出到log檔案中:./program 2>log。

這樣標準輸出還是在螢幕上,但是錯誤資訊會輸出到log檔案中。

另外,也可以實現0,1,2之間的重定向。2>&1:將錯誤資訊重定向到標準輸出。

linux下還有乙個特殊的檔案/dev/null,它就像乙個無底洞,所有重定向到它的資訊都會消失得無影無蹤。

這一點非常有用,當我們不需要回顯程式的所有資訊時,就可以將輸出重定向到/dev/null。

如果想要正常輸出和錯誤資訊都不顯示,則要把標準輸出和標準錯誤都重定向到/dev/null, 例如:

# ls 1>/dev/null 2>/dev/null

還有一種做法是將錯誤重定向到標準輸出,然後再重定向到 /dev/null,例如:

# ls >/dev/null 2>&1

注意:此處的順序不能更改,否則達不到想要的效果,此時先將標準輸出重定向到 /dev/null,

然後將標準錯誤重定向到標準輸出。

由於標準輸出已經重定向到了/dev/null,因此標準錯誤也會重定向到/dev/null,於是一切靜悄悄。

■關於nohup

在使用nohup命令的時候,經常由於輸出nohup.out的路徑沒有寫入許可權,而無法使用nohup。

這是可以使用linux重定向的方法,將nohup.out重定向至乙個有寫入許可權的路徑,或者直接扔到/dev/null中。

nohup ./program >/dev/null 2>/dev/null &

或者nohup ./program >/dev/null 2>&1 &

引言: 有時候需要在linux上設定乙個後台程序,但是當你關閉terminal之時,它會被系統kill掉,那該如何來實現其後台程序能一直執行下去呢?

使用方式:

nohup command-with-options &

當在螢幕上敲擊上述命令之後,螢幕上會出現如下資訊:

敲擊回車,就退出了nohup.out當前的介面,進入正常的命令列。

輸出日誌資訊:

接下來的輸出的日誌資訊,將輸出到nohup.log.即將螢幕上輸出的日誌資訊直接輸出到nohup.log檔案。

後台程序的標誌符:

如果乙個命令只使用&來標識,則表示其在當前session中,執行在後台。如果當前session關閉或者當前的terminal工具關閉,則其附屬的程序將會關閉。

正常執行的後台程序都是需要nohup與&,兩者並行使用的,方可保證其在後台正常執行。

1.啟動程式並輸入到指定日誌

nohup python manage.py runserver 0.0.0.0:9090 > /data/zyj/xadstat/xadstat.log  2&>1 &

或者 nohup python manage.py runserver 0.0.0.0:800 >> run.log 2>&1 &

2.檢視當前程序號(可能會起兩個程序要殺死兩次)

3.殺死程序 kil -9 

unix/linux下一般比如想讓某個程式在後台執行,很多都是使用 & 在程式結尾來讓程式自動執行。

比如我們要執行weblogic在後台:

./startweblogic.sh &

但是加入我們很多程式並不象weblogic一樣做成守護程序,可能我們的程式只是普通程式而已,一般這種程式使用 &結尾。

但是如果終端關閉,那麼程式也會被關閉。

但是為了能夠後台執行,那麼我們就可以使用nohup這個命令。

比如我們有個startweblogic.sh需要在後台執行,那麼就使用nohup:

nohup ./startweblogic.sh &

嗯,證明執行成功,同時把程式執行的輸出資訊放到當前目錄的 nohup.out 檔案中去。

nohup 命令

用途:linux命令用法,不結束通話地執行命令。

語法:nohup command [ arg ... ] [ & ]

在登出後使用 nohup 命令執行後台中的程式。要執行後台中的 nohup 命令,新增 & ( 表示「and」的符號)到命令的尾部。

■場景執行nohup命令的時候,經常會出現下面這種沒有寫入許可權的錯誤。

■linux重定向:

0、1和2分別表示標準輸入、標準輸出和標準錯誤資訊輸出,可以用來指定需要重定向的標準輸入或輸出。

在一般使用時,預設的是標準輸出,既1。當我們需要特殊用途時,可以使用其他標號。

例如,將某個程式的錯誤資訊輸出到log檔案中:./program 2>log。

這樣標準輸出還是在螢幕上,但是錯誤資訊會輸出到log檔案中。

另外,也可以實現0,1,2之間的重定向。2>&1:將錯誤資訊重定向到標準輸出。

linux下還有乙個特殊的檔案/dev/null,它就像乙個無底洞,所有重定向到它的資訊都會消失得無影無蹤。

這一點非常有用,當我們不需要回顯程式的所有資訊時,就可以將輸出重定向到/dev/null。

如果想要正常輸出和錯誤資訊都不顯示,則要把標準輸出和標準錯誤都重定向到/dev/null, 例如:

# ls 1>/dev/null 2>/dev/null

還有一種做法是將錯誤重定向到標準輸出,然後再重定向到 /dev/null,例如:

# ls >/dev/null 2>&1

注意:此處的順序不能更改,否則達不到想要的效果,此時先將標準輸出重定向到 /dev/null,

然後將標準錯誤重定向到標準輸出。

由於標準輸出已經重定向到了/dev/null,因此標準錯誤也會重定向到/dev/null,於是一切靜悄悄。

■關於nohup

在使用nohup命令的時候,經常由於輸出nohup.out的路徑沒有寫入許可權,而無法使用nohup。

這是可以使用linux重定向的方法,將nohup.out重定向至乙個有寫入許可權的路徑,或者直接扔到/dev/null中。

nohup ./program >/dev/null 2>/dev/null &

或者nohup ./program >/dev/null 2>&1 &

引言: 有時候需要在linux上設定乙個後台程序,但是當你關閉terminal之時,它會被系統kill掉,那該如何來實現其後台程序能一直執行下去呢?

使用方式:

nohup command-with-options &

當在螢幕上敲擊上述命令之後,螢幕上會出現如下資訊:

敲擊回車,就退出了nohup.out當前的介面,進入正常的命令列。

輸出日誌資訊:

接下來的輸出的日誌資訊,將輸出到nohup.log.即將螢幕上輸出的日誌資訊直接輸出到nohup.log檔案。

後台程序的標誌符:

如果乙個命令只使用&來標識,則表示其在當前session中,執行在後台。如果當前session關閉或者當前的terminal工具關閉,則其附屬的程序將會關閉。

正常執行的後台程序都是需要nohup與&,兩者並行使用的,方可保證其在後台正常執行。

Linux下在後台啟動程式 nohup 輸出重定向

前情提要 當前有乙個helloword.sh指令碼,其中執行的是乙個py指令碼。python helloword.pyprint hello word 後台執行任務 nohup sh helloword.sh output.txt 2 1 nohup sh x helloword.sh output...

Python 後台啟動程式

在python開發工作中我們會遇上乙個程式或者指令碼執行時間過長的問題,在linux程式下操作時間超過180分鐘會自動退出,這樣就會中斷我們的程式,前功盡棄的感覺真的難受 那有什麼好的解決方案呢?我們可以 方案1,將程式或者介面部署到nginx伺服器上,這樣程式進入listening 持續監聽 狀態...

linux關於後台啟動程式

正經學徒,佛系記錄,不搞事情 最終語句 nohup test.sh 1 dev null 2 1 解釋 建立test.sh測試指令碼 vi test.sh 內容 bin bash while true do echo 不停的執行 sleep 5 done 設定檔案許可權可執行 結果是內容直接輸出在控...