命令運(yùn)行時(shí)使用CTRL+Z,強(qiáng)制當(dāng)前進(jìn)程轉(zhuǎn)為后臺(tái),并使之掛起(暫停).\x0d\x0a1. 使進(jìn)程恢復(fù)運(yùn)行(后臺(tái))\x0d\x0a(1)使用命令bg\x0d\x0aExample:\x0d\x0azuii@zuii-desktop:~/unp/tcpcliserv$ ./tcpserv01\x0d\x0a*這里使用CTRL+Z,此時(shí)serv01是停止?fàn)顟B(tài)*\x0d\x0a[1]+ Stopped ./tcpserv01\x0d\x0azuii@zuii-desktop:~/unp/tcpcliserv$ bg\x0d\x0a[1]+ ./tcpserv01 *此時(shí)serv01運(yùn)行在后臺(tái)*\x0d\x0azuii@zuii-desktop:~/unp/tcpcliserv$\x0d\x0a(2)如果用CTRL+Z停止了幾個(gè)程序呢?\x0d\x0aExample:\x0d\x0azuii@zuii-desktop:~/unp/tcpcliserv$ jobs\x0d\x0a[1]- Running ./tcpserv01 \x0d\x0a[2]+ Stopped ./tcpcli01 127.0.0.1\x0d\x0azuii@zuii-desktop:~/unp/tcpcliserv$ bg %1\x0d\x0abash: bg:任務(wù) 1 已轉(zhuǎn)入后臺(tái) *后臺(tái)運(yùn)行*\x0d\x0a2. 使進(jìn)程恢復(fù)至前臺(tái)運(yùn)行\(zhòng)x0d\x0aExample:\x0d\x0azuii@zuii-desktop:~/unp/tcpcliserv$ ./tcpserv04\x0d\x0a[1]+ Stopped ./tcpserv04\x0d\x0azuii@zuii-desktop:~/unp/tcpcliserv$ fg\x0d\x0a./tcpserv04\x0d\x0a總結(jié):\x0d\x0a(1) CTRL+Z掛起進(jìn)程并放入后臺(tái)\x0d\x0a(2) jobs 顯示當(dāng)前暫停的進(jìn)程\x0d\x0a(3) bg %N 使第N個(gè)任務(wù)在后臺(tái)運(yùn)行(%前有空格)\x0d\x0a(4) fg %N 使第N個(gè)任務(wù)在前臺(tái)運(yùn)行\(zhòng)x0d\x0a默認(rèn)bg,fg不帶%N時(shí)表示對(duì)最后一個(gè)進(jìn)程操作!
創(chuàng)新互聯(lián)是一家專業(yè)提供屏山企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為屏山眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
背景 :工作需要,需要遠(yuǎn)程控制主機(jī)使其斷開Xshell后也能一直運(yùn)行。
關(guān)鍵字 : ,nohup,腳本掛起。
在應(yīng)用Unix/Linux時(shí),我們一般想讓某個(gè)程序在后臺(tái)運(yùn)行,于是我們將常會(huì)用 在程序結(jié)尾來讓程序自動(dòng)運(yùn)行。
鍵入Ctrl + C,發(fā)出SIGINT信號(hào),程序會(huì)繼續(xù)運(yùn)行
方法一、輸入命令:jobs
方法二:輸入命令:ps
fg、bg、jobs、、nohup、ctrl+z、ctrl+c 命令
加在一個(gè)命令的最后,可以把這個(gè)命令放到后臺(tái)執(zhí)行,如
可以將一個(gè)正在前臺(tái)執(zhí)行的命令放到后臺(tái),并且處于暫停狀態(tài)。
查看當(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í)。
將后臺(tái)中的命令調(diào)至前臺(tái)繼續(xù)運(yùn)行。如果后臺(tái)中有多個(gè)命令,可以用fg %jobnumber(是命令編號(hào),不是進(jìn)程號(hào))將選中的命令調(diào)出。
將一個(gè)在后臺(tái)暫停的命令,變成在后臺(tái)繼續(xù)執(zhí)行。如果后臺(tái)中有多個(gè)命令,可以用bg %jobnumber將選中的命令調(diào)出。
法子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
如果讓程序始終在后臺(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)程查看命令)
如上所示:
nohup 和 組合了后臺(tái)運(yùn)行程序。
可以輸出到 out.log保存程序輸出,也可以輸出到/dev/null 即空設(shè)備,不保存輸出。
上面三種方式無論在nohup.out 或test.out都看不到數(shù)據(jù)結(jié)果,這是因?yàn)閜ython執(zhí)行有緩存輸出
解決
新的接口接入查看程序
使用后臺(tái)運(yùn)行程序:
結(jié)果會(huì)輸出到終端
使用Ctrl + C發(fā)送SIGINT信號(hào), 程序免疫
關(guān)閉session發(fā)送SIGHUP信號(hào), 程序關(guān)閉
使用nohup運(yùn)行程序:
結(jié)果默認(rèn)會(huì)輸出到nohup.out
使用Ctrl + C發(fā)送SIGINT信號(hào), 程序關(guān)閉
關(guān)閉session發(fā)送SIGHUP信號(hào), 程序免疫
平日線上經(jīng)常使用nohup和配合來啟動(dòng)程序:
同時(shí)免疫SIGINT和SIGHUP信號(hào)
同時(shí),還有一個(gè)最佳實(shí)踐:
不要將信息輸出到終端標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)錯(cuò)誤輸出,而要用日志組件將信息記錄到日志里
nohup和究竟有啥區(qū)別
假設(shè)我們?cè)?home里創(chuàng)建
1、創(chuàng)建一個(gè)叫test的文件夾
輸入 cd /home 回車 就到了home目錄;
輸入 mkdir test 就可以了。
2、在文件夾里添加(就是創(chuàng)建 一個(gè)文件,例如a.txt)
輸入 touch test/a.txt 回車。
3、刪除
輸入 rm -rf test/ 回車。
擴(kuò)展資料:
一、LINUX通用命令:
1.date :print or set the system date and time
2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)
3. passwd: print or set the system date and time (用passwd -h查看)
4. logout, login: 登錄shell的登錄和注銷命令
5. pwd: print working directory
6. more, less, head tail: 顯示或部分顯示文件內(nèi)容.
7. lp/lpstat/cancel, lpr/lpq/lprm: 打印文件.
8. 更改文件權(quán)限: chmod u+x...
9. 刪除非空目錄:rm -fr dir
10. fg jobid :可以將一個(gè)后臺(tái)進(jìn)程放到前臺(tái)。
Ctrl-z 可以將前臺(tái)進(jìn)程掛起(suspend), 然后可以用bg jobid 讓其到后臺(tái)運(yùn)行。
job 可以直接讓job直接在后臺(tái)運(yùn)行。
11. kill 的作用: send a signal to a process. eg: kill -9 發(fā)送的是SIG_KILL信號(hào)。。。 具體發(fā)送什么信號(hào) 可以通過 man kill 查看。
12. ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session顯示的sessionid, tpgid顯示前臺(tái)進(jìn)程組id, comm顯示命令名稱。)
參考資料:LINUX命令-百度百科