天天看點

Linux 運作、檢視、關閉背景程式的指令速查菜單詳解1. &2. nohup3. ctrl+z4. bg5. fg6. jobs7. ps8. kill

之前寫了一篇爬取Bing首頁的爬蟲,每天都需要運作爬取,這馬上要回家過年了,電腦又不是每天都開着了,于是乎想着在雲伺服器上運作python程式,這是之前寫的在Centos7雲伺服器中下載下傳并安裝的Anaconda3 Python,現在就想着怎麼讓程式挂在背景運作了,好記性不如爛筆頭,找資料總結記錄一下。

速查菜單

指令 說明
& 将目前指令以背景的形式運作
nohup 隔離終端挂斷信号,是指令的字首
ctrl+z 将前台任務轉背景并當機
bg 将背景當機的任務再次運作起來
fg 将背景任務重新轉前台執行
jobs 檢視在背景運作的任務清單
ps 檢視正在運作的程序資訊
kill 殺掉某個程序

詳解

假設現在有一個名為main.py的python程式,且該程式的權限為可執行的

1. &

背景運作,但關閉視窗後,也會終止運作程式

2. nohup

在1.的基礎上,在指令的前面加上nohup,可實作不挂斷的運作

這裡出現了下面這個提示,不用管它,直接敲回車
#nohup:忽略輸入并将stderr重定向到stdout
nohup: ignoring input and redirecting stderr to stdout
           

3. ctrl+z

将前台的程式轉入背景并暫停運作

4. bg

将背景當機的任務再次運作起來

注意:這裡的id是通過jobs指令檢視得到的

5. fg

将背景程序轉至前台運作

注意:這裡的id是通過jobs指令檢視得到的

6. jobs

檢視目前終端背景運作的任務,直接輸入指令就行

7. ps

檢視目前的程序,直接輸入指令就行

與jobs的差別:jobs隻能檢視目前終端裡的程序,ps可以檢視其他終端中的程序,ps有以下參數

ps -aux|grep “text.sh” a:(all)顯示所有程序 u :以使用者為主的格式 x : 所有的程序不以終端區分

常使用以下這種格式,解釋說明:e:表示列出所有程序,f:表示輸出完整格式,grep hzqtest:表示過濾篩選“python”關鍵字。

ps -ef |grep python
           

8. kill

先用jobs檢視程序,獲得它的jobsID,注意在那個%是需要的
kill -9 %jobsID
           
先用ps檢視程序,獲得它的PID
kill -9 PID
           

非常感謝以下博文

參考博文:

在linux背景運作腳本指令和程式的方法大全

Linux 下背景運作程式,檢視和關閉背景運作程式

Linux前背景運作指令及切換

Linux下程式背景運作:nohup和&