在日常開發(fā)過程中,,除了例行調(diào)度的任務(wù)和直接在開發(fā)環(huán)境下比如Scripts,開發(fā),,很多情況下是shell下直接搞起(小公司一般是這樣),,看一下常見的linux后臺(tái)運(yùn)行和關(guān)閉的命令,這里做一個(gè)總結(jié),,主要包括:fg、bg,、jobs,、&、nohup,、ctrl+z,、ctrl+c 命令等
一,、&
加在一個(gè)命令的最后,,可以把這個(gè)命令放到后臺(tái)執(zhí)行,如
watch -n 10 sh
& #每10s在后臺(tái)執(zhí)行一次腳本
回到頂部
二,、ctrl + z
可以將一個(gè)正在前臺(tái)執(zhí)行的命令放到后臺(tái),并且處于暫停狀態(tài),。
回到頂部
三、jobs
查看當(dāng)前有多少在后臺(tái)運(yùn)行的命令
jobs -l選項(xiàng)可顯示所有任務(wù)的PID,,jobs的狀態(tài)可以是running, stopped, Terminated,。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進(jìn)程標(biāo)識(shí),。
回到頂部
四、fg
將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行,。如果后臺(tái)中有多個(gè)命令,,可以用fg %jobnumber(是命令編號(hào),不是進(jìn)程號(hào))將選中的命令調(diào)出,。
回到頂部
五、bg
將一個(gè)在后臺(tái)暫停的命令,,變成在后臺(tái)繼續(xù)執(zhí)行,。如果后臺(tái)中有多個(gè)命令,,可以用bg %jobnumber將選中的命令調(diào)出。
回到頂部
六,、kill
法子1:通過jobs命令查看job號(hào)(假設(shè)為num),然后執(zhí)行kill %num
法子2:通過ps命令查看job的進(jìn)程號(hào)(PID,,假設(shè)為pid),,然后執(zhí)行kill pid
前臺(tái)進(jìn)程的終止:Ctrl+c
回到頂部
七,、nohup
如果讓程序始終在后臺(tái)執(zhí)行,,即使關(guān)閉當(dāng)前的終端也執(zhí)行(之前的&做不到),這時(shí)候需要nohup,。該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運(yùn)行相應(yīng)的進(jìn)程,。關(guān)閉中斷后,在另一個(gè)終端jobs已經(jīng)無法看到后臺(tái)跑得程序了,,此時(shí)利用ps(進(jìn)程查看命令)
ps -aux | grep "" #a:顯示所有程序 u:以用戶為主的格式來顯示 x:顯示所有程序,,不以終端機(jī)來區(qū)分
進(jìn)程的終止: kill -9 進(jìn)程號(hào)
|