PHP程序員玩轉(zhuǎn)Linux系列 使用supervisor實(shí)現(xiàn)守護(hù)進(jìn)程
PHP程序員玩轉(zhuǎn)Linux系列文章:
1.PHP程序員玩轉(zhuǎn)Linux系列-怎么安裝使用CentOS
2.PHP程序員玩轉(zhuǎn)Linux系列-lnmp環(huán)境的搭建
3.PHP程序員玩轉(zhuǎn)Linux系列-搭建FTP代碼開(kāi)發(fā)環(huán)境
4.PHP程序員玩轉(zhuǎn)Linux系列-備份還原MySQL
5.PHP程序員玩轉(zhuǎn)Linux系列-自動(dòng)備份與SVN
6.PHP程序員玩轉(zhuǎn)Linux系列-Linux和Windows安裝nginx
7.PHP程序員玩轉(zhuǎn)Linux系列-nginx初學(xué)者引導(dǎo)
8.PHP程序員玩轉(zhuǎn)Linux系列-Nginx中的HTTPS
首先遇到的問(wèn)題是,部署nodejs的博客程序時(shí),我把執(zhí)行nodejs的命令放到后臺(tái),使用加&和nohup命令
如:nodejs index.js & 或者 nohup nodejs index.js &
&這個(gè)使用是當(dāng)退出此次終端會(huì)話的時(shí)候就會(huì)停止, nohup這個(gè)命令理論上是可以后臺(tái)一直執(zhí)行的,但是當(dāng)出現(xiàn)某些異常的時(shí)候,還是會(huì)退出.
進(jìn)程的基礎(chǔ)概念
進(jìn)程是執(zhí)行程序的過(guò)程.unix系統(tǒng)的老祖宗內(nèi)核進(jìn)程的ppid都是是0,比如:init進(jìn)程的pid是1,ppid是0;其他進(jìn)程都是從init進(jìn)程的基礎(chǔ)上fork出來(lái)的,使用pstree命令可以看到進(jìn)程樹(shù)
測(cè)試使用&實(shí)現(xiàn)一個(gè)后臺(tái)進(jìn)程,并把后臺(tái)進(jìn)程再轉(zhuǎn)回到前臺(tái),下面是把進(jìn)程放到后臺(tái),[1]這個(gè)是job的號(hào)
ping baidu.com > xx.txt &
把后臺(tái)進(jìn)程重新轉(zhuǎn)到前臺(tái),%1的那個(gè)數(shù)字就是上面的job號(hào)
fg %1
如何使用nohup這個(gè)命令
nohup命令,這個(gè)命令是使進(jìn)程忽略SIGHUP掛起(hangup)信號(hào),測(cè)試如下:
nohup ping baidu.com > xx.txt &
進(jìn)程信號(hào)如下:
01 SIGHUP 掛起(hangup)
02 SIGINT 中斷,當(dāng)用戶從鍵盤(pán)按^c鍵或^break鍵時(shí)
03 SIGQUIT 退出,當(dāng)用戶從鍵盤(pán)按quit鍵時(shí)
04 SIGILL 非法指令
05 SIGTRAP 跟蹤陷阱(trace trap),啟動(dòng)進(jìn)程,跟蹤代碼的執(zhí)行
06 SIGIOT IOT指令
07 SIGEMT EMT指令
08 SIGFPE 浮點(diǎn)運(yùn)算溢出
09 SIGKILL 終止進(jìn)程
10 SIGBUS 總線錯(cuò)誤
11 SIGSEGV 段違例(segmentation violation),進(jìn)程試圖去訪問(wèn)其虛地址空間以外的位置
12 SIGSYS 系統(tǒng)調(diào)用中參數(shù)錯(cuò),如系統(tǒng)調(diào)用號(hào)非法
13 SIGPIPE 向某個(gè)非讀管道中寫(xiě)入數(shù)據(jù)
14 SIGALRM 鬧鐘。當(dāng)某進(jìn)程希望在某時(shí)間后接收信號(hào)時(shí)發(fā)此信號(hào)
15 SIGTERM 軟件終止(software termination)
16 SIGUSR1 用戶自定義信號(hào)1
17 SIGUSR2 用戶自定義信號(hào)2
18 SIGCLD 某個(gè)子進(jìn)程死
19 SIGPWR 電源故障
使用supervisor實(shí)現(xiàn)守護(hù)進(jìn)程
守護(hù)進(jìn)程,就是一直運(yùn)行的收存周期很長(zhǎng)的進(jìn)程.使用supervisor可以實(shí)現(xiàn)這樣的進(jìn)程,該進(jìn)程并且會(huì)在被殺掉的時(shí)候自動(dòng)再次重啟.
#安裝supervisor yum install supervisor
在配置文件(/etc/supervisord.conf)配置一下:
program:nodejsblog 這里:后面的是個(gè)名字,可以隨便起
command= 這里是要執(zhí)行的命令
user= 這里是執(zhí)行用戶
[program:nodejsblog] command=/usr/bin/nodejs /var/www/html/nblog index.js user=root
開(kāi)啟 supervisord -c /etc/supervisord.conf
此時(shí)nodejs的守護(hù)進(jìn)程也會(huì)隨著啟動(dòng)了可以使用ps命令去查看一下,并且在你kill該進(jìn)程的時(shí)候,會(huì)自動(dòng)重啟.
例如我這個(gè)例子中測(cè)試部署的nodejs網(wǎng)站http://nblog.qingguow.cn
與此相關(guān)的博文:
[nodejs] nodejs開(kāi)發(fā)個(gè)人博客(七)后臺(tái)登陸
[nodejs] nodejs開(kāi)發(fā)個(gè)人博客(六)數(shù)據(jù)分頁(yè)
[nodejs] nodejs開(kāi)發(fā)個(gè)人博客(五)分配數(shù)據(jù)
[nodejs] nodejs開(kāi)發(fā)個(gè)人博客(四)數(shù)據(jù)模型
[nodejs] nodejs開(kāi)發(fā)個(gè)人博客(三)載入頁(yè)面
[nodejs] nodejs開(kāi)發(fā)個(gè)人博客(二)入口文件
[nodejs] nodejs開(kāi)發(fā)個(gè)人博客(一)準(zhǔn)備工作
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
CentOS7 安裝 zabbix 4.0 教程(圖文詳解)
這篇文章主要介紹了CentOS7 安裝 zabbix 4.0 教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Linux UDP socket 設(shè)置為的非阻塞模式與阻塞模式區(qū)別
這篇文章主要介紹了Linux UDP socket 設(shè)置為的非阻塞模式與阻塞模式區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-02-02關(guān)于Linux下對(duì)于makefile的理解
下面小編就為大家?guī)?lái)一篇關(guān)于Linux下對(duì)于makefile的理解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Linux系統(tǒng)下移植busybox中mkfs.vfat命令
為了延長(zhǎng)磁盤(pán)壽命來(lái)存儲(chǔ)音視頻文件,打發(fā)在格式化磁盤(pán)過(guò)程中將簇的大小設(shè)置大點(diǎn)。這接下來(lái)通過(guò)本文給大家介紹移植busybox中mkfs.vfat命令,需要的朋友可以參考下2019-07-07Apache rewrite的重寫(xiě)相關(guān)的參數(shù)說(shuō)明
Apache的rewrite的重寫(xiě)非常常用,現(xiàn)總結(jié)了一下.2008-08-08Linux時(shí)間子系統(tǒng)之時(shí)間的表示示例詳解
這篇文章主要給大家介紹了關(guān)于Linux時(shí)間子系統(tǒng)之時(shí)間的表示的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用linux系統(tǒng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05linux系統(tǒng)下MongoDB單節(jié)點(diǎn)安裝教程
這篇文章主要給大家介紹了在linux系統(tǒng)下mongo在單節(jié)點(diǎn)安裝的方法教程,文中將實(shí)現(xiàn)的方法一步步介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧。2017-10-10ubuntu 13.10編譯安裝mono環(huán)境(二)
接上篇,上篇僅安裝了Mono本身,并沒(méi)有安裝libgdiplus、gtk-sharp、mod_mono、MonoDevelop 等其他相關(guān)的軟件。 這篇主要是配置安裝libgdiplus。2014-07-07