控制命令概覽:
目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、阜康網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1、command讓進程在后臺運行。
2、jobs查看后臺運行的進程。
3、fg%n讓后臺運行的進程n到前臺來。
4、bg%n讓進程n到后臺去,"n"為jobs查看到的進程編號。
在你的任意目錄輸入命令: npm install pm2 -g
1.找到全局環(huán)境PATH路徑
輸入命令: echo $PATH
回車后: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
你的路徑和我的可能不一樣,但沒關(guān)系,你可以選擇任何一個以:隔開的路徑做為系統(tǒng)環(huán)境路徑,我通常會選 /usr/local/bin
2:找到pm2的安裝路徑
在上面輸入 npm install pm2 -g 全局安裝時
/usr/sbin/nodejs/bin/pm2 - /usr/sbin/nodejs/lib/node_modules/pm2/bin/pm2
/usr/sbin/nodejs/bin/pm2 是安裝路徑(你的可能和我的不一樣)
3.好了都找到了,
就重要的一步要開始了,睜大你的雙眼。
命令為: ln -s /usr/sbin/nodejs/bin/pm2 /usr/local/bin/ (注意空格)
格式: ln -s 空格 pm2安裝路徑 空格 系統(tǒng)環(huán)境路徑
OK,搞定,接下來驗證一把…
[root@iZmwyb7v60px1zZ ~]# pm2 list
回車...
$ pm2 start app.js # 啟動app.js應(yīng)用程序
$ pm2 start app.js –name=”api” # 啟動應(yīng)用程序并命名為 “api”
$ pm2 start app.js –watch # 當(dāng)文件變化時自動重啟應(yīng)用
$ pm2 start script.sh # 啟動 bash 腳本
$ pm2 list # 列表 PM2 啟動的所有的應(yīng)用程序
$ pm2 monit # 顯示每個應(yīng)用程序的CPU和內(nèi)存占用情況
$ pm2 show [app-name] # 顯示應(yīng)用程序的所有信息
$ pm2 logs # 顯示所有應(yīng)用程序的日志
$ pm2 logs [app-name] # 顯示指定應(yīng)用程序的日志
$ pm2 stop all # 停止所有的應(yīng)用程序
$ pm2 stop 0 # 停止 id為 0的指定應(yīng)用程序
$ pm2 restart all # 重啟所有應(yīng)用
$ pm2 reload all # 重啟 cluster mode下的所有應(yīng)用
$ pm2 gracefulReload all # Graceful reload all apps in cluster mode
$ pm2 delete all # 關(guān)閉并刪除所有應(yīng)用
$ pm2 delete 0 # 刪除指定應(yīng)用 id 0
$ pm2 scale api 10 # 把名字叫api的應(yīng)用擴展到10個實例
$ pm2 reset [app-name] # 重置重啟數(shù)量
$ pm2 startup # 創(chuàng)建開機自啟動命令
$ pm2 save # 保存當(dāng)前應(yīng)用列表
$ pm2 resurrect # 重新加載保存的應(yīng)用列表
$ pm2 update # Save processes, kill PM2 and restore processes
$ pm2 generate # Generate a sample json configuration file
當(dāng)我們在終端或控制臺工作時,可能不希望由于運行一個作業(yè)而占住了屏幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對于密集訪問磁盤的進程,我們更希望它能夠在每天的非負荷高峰時間段運行(例如凌晨)。為了使這些進程能夠在后臺運行,也就是說不在終端屏幕上運行,有幾種選擇方法可供使用。
:當(dāng)在前臺運行某個作業(yè)時,終端被該作業(yè)占據(jù);可以在命令后面加上 實現(xiàn)后臺運行。例如:sh test.sh
適合在后臺運行的命令有f i n d、費時的排序及一些s h e l l腳本。在后臺運行作業(yè)時要當(dāng)心:需要用戶交互的命令不要放在后臺執(zhí)行,因為這樣你的機器就會在那里傻等。不過,作業(yè)在后臺運行一樣會將結(jié)果輸出到屏幕上,干擾你的工作。如果放在后臺運行的作業(yè)會產(chǎn)生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:
這樣,所有的標(biāo)準輸出和錯誤輸出都將被重定向到一個叫做out.file 的文件中。
PS:當(dāng)你成功地提交進程以后,就會顯示出一個進程號,可以用它來監(jiān)控該進程,或殺死它。(ps -ef | grep 進程號 或者 kill -9 進程號)
nohup:使用命令后,作業(yè)被提交到后臺運行,當(dāng)前控制臺沒有被占用,但是一但把當(dāng)前控制臺關(guān)掉(退出帳戶時),作業(yè)就會停止運行。nohup命令可以在你退出帳戶之后繼續(xù)運行相應(yīng)的進程。nohup就是不掛起的意思( no hang up)。該命令的一般形式為:
如果使用nohup命令提交作業(yè),那么在缺省情況下該作業(yè)的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件:
使用了nohup之后,很多人就這樣不管了,其實這樣有可能在當(dāng)前賬戶非正常退出或者結(jié)束的時候,命令還是自己結(jié)束了。所以在使用nohup命令后臺運行命令之后,需要使用exit正常退出當(dāng)前賬戶,這樣才能保證命令一直在后臺運行。
ctrl + z :可以將一個正在前臺執(zhí)行的命令放到后臺,并且處于暫停狀態(tài)。
Ctrl+c :終止前臺命令。
jobs: 查看當(dāng)前有多少在后臺運行的命令。 jobs -l選項可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進程標(biāo)識。
21解析:
擴展鏈接:如何寫高效的代碼,和代碼優(yōu)化方法
在linux系統(tǒng)中有這兩個命令 ctrl+z 和ctrl+c ,這兩個命令輸入之后看起來結(jié)果差不多,實質(zhì)是不同的。
他們都有中斷命令的效果,但是作用是不一樣的。
ctrl+c是強制終止程序的執(zhí)行并結(jié)束進程。而ctrl+z則只是中斷任務(wù)的執(zhí)行,但該任務(wù)并沒有被結(jié)束。
它只是在進程中維持掛起的狀態(tài),用戶可以使用fg/bg命令來繼續(xù)前臺/后臺執(zhí)行該任務(wù)。fg命令會重啟
前臺被中斷的任務(wù),bg命令會把中斷的任務(wù)放到后臺執(zhí)行。
你也可以使用bg這樣的方法讓一個前臺執(zhí)行的任務(wù)切換到后臺去執(zhí)行。
也可以使用fg這樣的方法讓一個后臺執(zhí)行的任務(wù)切換到前臺去執(zhí)行。
還有一個最常用的方法是
在一行命令的最后輸入,可以讓這行命令放到后臺去運行。
使用jobs命令查看當(dāng)前有多少后臺程序在運行。
背景 :工作需要,需要遠程控制主機使其斷開Xshell后也能一直運行。
關(guān)鍵字 : ,nohup,腳本掛起。
在應(yīng)用Unix/Linux時,我們一般想讓某個程序在后臺運行,于是我們將常會用 在程序結(jié)尾來讓程序自動運行。
鍵入Ctrl + C,發(fā)出SIGINT信號,程序會繼續(xù)運行
方法一、輸入命令:jobs
方法二:輸入命令:ps
fg、bg、jobs、、nohup、ctrl+z、ctrl+c 命令
加在一個命令的最后,可以把這個命令放到后臺執(zhí)行,如
可以將一個正在前臺執(zhí)行的命令放到后臺,并且處于暫停狀態(tài)。
查看當(dāng)前有多少在后臺運行的命令
jobs -l選項可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進程標(biāo)識。
將后臺中的命令調(diào)至前臺繼續(xù)運行。如果后臺中有多個命令,可以用fg %jobnumber(是命令編號,不是進程號)將選中的命令調(diào)出。
將一個在后臺暫停的命令,變成在后臺繼續(xù)執(zhí)行。如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調(diào)出。
法子1:通過jobs命令查看job號(假設(shè)為num),然后執(zhí)行kill %num
法子2:通過ps命令查看job的進程號(PID,假設(shè)為pid),然后執(zhí)行kill pid
前臺進程的終止:Ctrl+c
如果讓程序始終在后臺執(zhí)行,即使關(guān)閉當(dāng)前的終端也執(zhí)行(之前的做不到),這時候需要nohup。該命令可以在你退出帳戶/關(guān)閉終端之后繼續(xù)運行相應(yīng)的進程。
關(guān)閉中斷后,在另一個終端jobs已經(jīng)無法看到后臺跑得程序了,此時利用ps(進程查看命令)
如上所示:
nohup 和 組合了后臺運行程序。
可以輸出到 out.log保存程序輸出,也可以輸出到/dev/null 即空設(shè)備,不保存輸出。
上面三種方式無論在nohup.out 或test.out都看不到數(shù)據(jù)結(jié)果,這是因為python執(zhí)行有緩存輸出
解決
新的接口接入查看程序
使用后臺運行程序:
結(jié)果會輸出到終端
使用Ctrl + C發(fā)送SIGINT信號, 程序免疫
關(guān)閉session發(fā)送SIGHUP信號, 程序關(guān)閉
使用nohup運行程序:
結(jié)果默認會輸出到nohup.out
使用Ctrl + C發(fā)送SIGINT信號, 程序關(guān)閉
關(guān)閉session發(fā)送SIGHUP信號, 程序免疫
平日線上經(jīng)常使用nohup和配合來啟動程序:
同時免疫SIGINT和SIGHUP信號
同時,還有一個最佳實踐:
不要將信息輸出到終端標(biāo)準輸出,標(biāo)準錯誤輸出,而要用日志組件將信息記錄到日志里
nohup和究竟有啥區(qū)別
第一種nohup命令來讓程序在后臺運行
括號內(nèi)容表示可以將平時輸出到控制臺中的內(nèi)容重定向到*.log這個文件中,這個是可選的,如果沒有這個,則會默認輸出到nohup.out文件中。括號后面你的表示后臺運行。
舉個例子:
第二種方法是寫一個腳本,假設(shè)我們定義了一個腳本run.sh
#!/bin/bash 是指此腳本使用/bin/bash來解釋執(zhí)行下面的語句,其中cd是表示將當(dāng)前目錄跳到所要運行文件所在目錄,然后python3 文件名.py則表示運行***python文件,當(dāng)寫完該腳本后,執(zhí)行以下命令來執(zhí)行該腳本從而讓程序在后臺運行。
通過 ps -ef|grep python3 命令可以查看后臺運行的進程都有哪些
當(dāng)前名稱:包含linux后臺命令的詞條
轉(zhuǎn)載注明:http://chinadenli.net/article30/hdoipo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、電子商務(wù)、App設(shè)計、網(wǎng)站內(nèi)鏈、網(wǎng)站維護、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)