ubuntu服務器後臺運行程序

之前一直在訓練漢字識別,和交大夥伴合作,用了他的服務器

命令:

nohup python train.py &

彈出了 [1] 4367 

[1] 是任務編號,就是jobsnumber

4367 是進程號,pid

還會有輸出一行 appendding output to 'nohub.out' 就是會把一些print打印出來的信息寫入到'nohub.out'這個文件

最後你回車就行,此時程序已經在後臺運行了

 

輸入:

ps -ef | grep 4367 

就能看到你剛運行的程序,即時是退出終端後,下次再進也依然在

ps -A  

列出所有的進程

殺死進程命令,比如把剛那個後臺程序終止:

kill 4367

4.補充幾個相關指令:

** 
引用自 
fg、bg、jobs、&、nohup、ctrl + z命令

 

 

jobs
1
前有多少在後臺運行的命令 
jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated,但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識;也就是說,jobs命令顯示的是當前shell環境中所起的後臺正在運行或者被掛起的任務信息;

fg
1
將後臺中的命令調至前臺繼續運行 
如果後臺中有多個命令,可以用fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後臺正在執行的命令的序號(不是pid)

bg
1
將一個在後臺暫停的命令,變成繼續執行 (在後臺執行) 
如果後臺中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的後臺正在執行的命令的序號(不是pid)

將任務轉移到後臺運行: 
先ctrl + z;再bg %jobnumber,這樣進程就被移到後臺運行,終端還能繼續接受命令。注意後臺變前臺,直接fg%jobnumber

前臺變後臺,先ctrl + z,再bg %jobnumber

概念:當前任務 
如果後臺的任務號有2個,[1],[2];如果當第一個後臺任務順利執行完畢,第二個後臺任務還在執行中時,當前任務便會自動變成後臺任務號碼“[2]” 的後臺任務。所以可以得出一點,即當前任務是會變動的。當用戶輸入“fg”、“bg”和“stop”等命令時,如果不加任何引號,則所變動的均是當前任務

這篇文章寫的也挺詳細的

https://blog.csdn.net/zhshow/article/details/6042350

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章