問題描述:
鏈結伺服器後,想在伺服器上執行乙個耗時特別長的程式;
問題是一旦會話結束,程式也就結束了,之前完成工作進度前功盡棄!!!
解決方案:使用nohup
命令掛起服務。 啟動命令為:
nohup python3 -u job.py > job_out.out 2>&1 &
典型範例:
例如:我要後台執行mytest.py
指令碼程式。
1、啟動命令:
闡釋說明:[root@localhost test]
# nohup python3 -u mytest.py > mytest_out.out 2>&1 &
[4] 22246 # 表示程序號
2、檢視指令碼是否已在後台執行:末尾的「&」
:表示後台執行程式「
nohup
」 :保證程式不被掛起「
python3
」:是執行python**的命令(此處指定python版本為python3)「
-u
」:是為了禁止快取,讓結果可以直接進入日誌檔案 mytest_out.out(如果不加-u,則會導致日誌檔案不會實時重新整理**中的print函式的資訊)「
job.py
」:是欲執行的python的源**檔案,此處為mytest.py「
job_out.out
」:是輸出的日誌檔案「
>
」:是指將列印資訊指定到日誌檔案「
2>&1
」:將標準錯誤輸出轉變化標準輸出,可以將錯誤資訊也輸出到日誌檔案中(0-> stdin, 1->stdout, 2->stderr)
(1) 使用jobs
命令,具體如下:
(2) 使用[root@localhost test]
# jobs
[4]+ running nohup python3 -u mytest.py > mytest_out.out 2>&1 &
ps -ef|grep python
或者ps -ef|grep job
命令,檢視程序。
(3) 使用# ps -ef|grep python
或者# ps -ef|grep job
ps aux
命令,檢視程式的程序號。
3、關閉程序: 使用[root@localhost test]
# ps aux
user pid %cpu %mem vsz rss tty stat start time command
…… root 22246 0.0 0.3 125572 6304 pts/0 s 17:29 0:00 python3 -u mytest.py
……
kill -9 程序號
命令,關閉指定程序號的程式。
備註:使用 2(2) 中檢視程序的命令,檢查或確認程序是否真正被關閉。[root@localhost test]
# kill -9 22246
linux下後台執行MATLAB
後台執行matlab指令碼檔案的方法 nohup 實現功能 1.字元環境下執行matlab.2.字元環境下執行matlab指令碼檔案,指令碼檔案無影象的螢幕輸出。3.指令碼檔案需長時間執行,執行結果輸出到檔案。matlab的標準重定向到另乙個檔案。4.客戶端退出登陸後,matlab保持執行,直到指令...
linux如何執行後台程序
linux直接執行乙個過程。電流指令結束後。或者關閉掉shell形成過程將結束。如何在後台執行的處理 辦法1採用nohup命令,nohup命令本身的意思no hung up他說,他們將不會收到shell關閉,封閉該過程。使用nohup command 使得命令能夠在後台執行。通過job l能夠看到後...
linux下後台執行了php檔案之後如何進行終止
1 第一種方式 檢視正在執行的程序 ps ef grep serve.php ps 將某個程序顯示出來 a 顯示所有程式。e 此引數的效果和指定 a 引數相同。f 顯示 uid,ppip,c 與stime 字段。grep命令是查詢 關閉程序 kill 引數 程序號 kill 9 4394 kill ...