nohup在後臺常駐執行php指令碼

流浪2024發表於2024-08-01

參考:https://www.jb51.net/program/31838687q.htm

nohup是什麼

nohup是Linux和Unix系統中的一個命令,其作用是在終端退出時,讓程序在後臺繼續執行。它的全稱為“no hang up”,意為“不掛起”。nohup命令可以讓你在退出終端或關閉SSH連線後繼續執行命令。

nohup語法規則

nohup命令的基本語法如下:

1

nohup COMMAND [ARGS ...] [> output-file 2> error-file] &

其中的引數含義如下:

  • COMMAND:需要在後臺執行的命令或指令碼。
  • ARGS:命令或指令碼的引數。
  • > output-file:輸出重定向到指定的檔案中。
  • 2> error-file:錯誤資訊重定向到指定的檔案中。
  • &:將命令放在後臺執行。

nohup命令的執行過程分為以下幾個步驟:

  • nohup命令將當前shell的標準輸入、標準輸出和標準錯誤輸出全部重定向到/dev/null裝置中,避免被關閉終端的訊號所中斷。
  • nohup命令將程序放到後臺執行,並將程序的PID輸出到終端。
  • 程序開始執行,並將標準輸出和標準錯誤輸出重定向到指定的檔案中。
  • 使用者可以退出終端或關閉終端視窗,程序仍然在後臺執行。

在工作中,我們很經常跑一個很重要的程式,有時候這個程式需要跑好幾個小時,甚至需要幾天,這個時候如果我們退出終端,或者網路不好連線中斷,那麼程式就會被中止。而這個情況肯定不是我們想看到的,我們希望即使終端關閉,程式依然可以在跑。

要讓PHP程式在Linux後臺執行,可以使用nohup命令配合&符號。nohup命令可以使程序在使用者登出後繼續執行,&可以將程序放到後臺執行。

nohup 命令是英語片語 no hangup 的縮寫,意思是不結束通話,也就是指程式不退出。這個命令會使程式忽略 HUP 訊號,保證程式能夠正常進行。HUP 訊號有些人可能比較陌生,它是在終端被中止的時候向它所關聯的程序所發出的訊號,程序收到這個訊號後就會中止執行。所以如果你不希望程序被這個訊號幹掉的話,就可以忽略這個訊號。而 nohup 命令做的就是這個事情。

php程式在linux後臺執行

1
命令:nohup php socket.php &

這樣關閉終端也不會斷開了

相關文章