supervisor 守护php,[Linux] PHP程序员玩转Linux系列-使用supervisor实现守护进程

首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令

如:nodejs index.js & 或者 nohup nodejs index.js &

&这个使用是当退出此次终端会话的时候就会停止, nohup这个命令理论上是可以后台一直执行的,但是当出现某些异常的时候,还是会退出.

进程的基础概念

进程是执行程序的过程.unix系统的老祖宗内核进程的ppid都是是0,比如:init进程的pid是1,ppid是0;其他进程都是从init进程的基础上fork出来的,使用pstree命令可以看到进程树

0c285eb95d96edf7bd36f7ec8bd09c31.png

测试使用&实现一个后台进程,并把后台进程再转回到前台,下面是把进程放到后台,[1]这个是job的号

ping baidu.com > xx.txt &

f631075e9a9ca8de773dfb83967b877c.png

把后台进程重新转到前台,%1的那个数字就是上面的job号

fg %1

如何使用nohup这个命令

nohup命令,这个命令是使进程忽略SIGHUP挂起(hangup)信号,测试如下:

nohup ping baidu.com > xx.txt &

进程信号如下:

01 SIGHUP 挂起(hangup)

02 SIGINT 中断,当用户从键盘按^c键或^break键时

03 SIGQUIT 退出,当用户从键盘按quit键时

04 SIGILL 非法指令

05 SIGTRAP 跟踪陷阱(trace trap),启动进程,跟踪代码的执行

06 SIGIOT IOT指令

07 SIGEMT EMT指令

08 SIGFPE 浮点运算溢出

09 SIGKILL 杀死、终止进程

10 SIGBUS 总线错误

11 SIGSEGV 段违例(segmentation violation),进程试图去访问其虚地址空间以外的位置

12 SIGSYS 系统调用中参数错,如系统调用号非法

13 SIGPIPE 向某个非读管道中写入数据

14 SIGALRM 闹钟。当某进程希望在某时间后接收信号时发此信号

15 SIGTERM 软件终止(software termination)

16 SIGUSR1 用户自定义信号1

17 SIGUSR2 用户自定义信号2

18 SIGCLD 某个子进程死

19 SIGPWR 电源故障

使用supervisor实现守护进程

守护进程,就是一直运行的收存周期很长的进程.使用supervisor可以实现这样的进程,该进程并且会在被杀掉的时候自动再次重启.

#安装supervisor

yum install supervisor

在配置文件(/etc/supervisord.conf)配置一下:

program:nodejsblog 这里:后面的是个名字,可以随便起

command= 这里是要执行的命令

user= 这里是执行用户

[program:nodejsblog]

command=/usr/bin/nodejs /var/www/html/nblog index.js

user=root

开启 supervisord -c /etc/supervisord.conf

此时nodejs的守护进程也会随着启动了可以使用ps命令去查看一下,并且在你kill该进程的时候,会自动重启.

例如我这个例子中测试部署的nodejs网站http://nblog.qingguow.cn

与此相关的博文:

[nodejs] nodejs开发个人博客(七)后台登陆 陶士涵 2016-03-17 23:01 阅读:1002 评论:0

[nodejs] nodejs开发个人博客(六)数据分页 陶士涵 2016-03-13 22:59 阅读:348 评论:0

[nodejs] nodejs开发个人博客(五)分配数据 陶士涵 2016-03-12 00:16 阅读:88 评论:0

[nodejs] nodejs开发个人博客(四)数据模型 陶士涵 2016-03-09 22:51 阅读:98 评论:0

[nodejs] nodejs开发个人博客(三)载入页面 陶士涵 2016-03-08 22:38 阅读:114 评论:0

[nodejs] nodejs开发个人博客(二)入口文件 陶士涵 2016-03-06 22:37 阅读:218 评论:0

[nodejs] nodejs开发个人博客(一)准备工作 陶士涵 2016-03-05 22:05 阅读:207 评论:0

[Linux] PHP程序员玩转Linux系列-lnmp环境的搭建

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 在平常的工作中,我作为PHP程序员经常要搭建一下环境,这个环境就是Linux系统下安装nginx,php,mysql这三个软件,对软件进行 ...

[Linux] PHP程序员玩转Linux系列-搭建代码开发环境

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...

[Linux] PHP程序员玩转Linux系列-备份还原MySQL

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 前几天有个新闻,说是g ...

[Linux] PHP程序员玩转Linux系列-自动备份与SVN

我的代码经常在开发修改,为了代码的安全性,比如哪天误删了文件,或者哪天改错东西了,可以恢复回来,我要搞代码备份.备份代码,我先做最简单的,使用linux的定时机制加shell命令打包文件,每天按日期保 ...

[Linux] PHP程序员玩转Linux系列-nginx初学者引导

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

[Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

[Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

[Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

[Linux] PHP程序员玩转Linux系列-升级PHP到PHP7

1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

随机推荐

Android 的 AlarmManager 和 wakeLock联合使用

http://stackoverflow.com/questions/6864712/android-alarmmanager-not-waking-phone-up 主要说的是,对于android ...

UVA 10341 Solve It 二分

题目大意:给6个系数,问是否存在X使得等式成立 思路:二分.... #include #include #define EEE 2.718 ...

hdu4992 Primitive Roots(所有原根)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4992 题意:给出n,输出n的所有原根. 思路:求出n的一个原根x,那么对于所以的i,i

discuz X2.0教程]教你快速了解Discuz!程序文件功能,修改文件从此不用再求人

x3.x数据字典 http://faq.comsenz.com/library/database/x3/x3_index.htm 先从根目录开始,根目录文件一般都是入口,即执行具体功能的代码一般不在这 ...

QueryPerformanceFrequency 和 QueryPerformanceCounter用法

QueryPerformanceFrequency() - 基本介绍 类型:Win32API 原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFr ...

Install minidwep-gtk

Hi to everyone in this time i'm going to show you how to install minidwep-gtk to test your own wifi ...

windows server 2008 集成raid卡驱动

给服务器安装2008系统,一般都需要通过引导盘和操作系统盘来进行安装,安装过程比较繁琐时间也比较长,于是就想做一个集成了服务器驱动的2008系统盘,这样就可以直接用光盘安装,简单方便,第一步需要解决的 ...

iOS 解决一个复杂bug 之 计分卡

由于该模块界面和业务逻辑都很复杂,并且整个界面设计和业务逻辑都在ViewController(下面简称为VC)里面完成.该VC共有3000多行,一个函数几百张的也有.所以,解决起来真是头疼. 1. 问 ...

神经网络参数与TensorFlow变量

在TensorFlow中变量的作用是保存和更新神经网络中的参数,需要给变量指定初始值,如下声明一个2x3矩阵变量 weights =tf.Variable(tf.random_normal([2,3] ...

洛谷P4907【CYH-01】小奔的国庆练习赛 :$A$换$B$ $problem$(DFS,剪枝)

洛谷题目传送门 顺便提一下题意有一个地方不太清楚,就是如果输出No还要输出最少需要添加多少张牌才能满足要求.蒟蒻考完以后发现四个点Too short on line 2... 比较需要技巧的搜索 既然 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Linux Supervisor,你可以按照以下步骤进行配置和操作: 1. 安装Supervisor使用适合你Linux发行版的软件包管理器(如apt、yum等)安装Supervisor。例如,在Ubuntu上,可以使用以下命令进行安装: ```shell sudo apt-get install supervisor ``` 2. 配置SupervisorSupervisor的配置文件位于`/etc/supervisor/conf.d/`目录下。你可以在该目录中创建一个以`.conf`为后缀的配置文件来配置你想要监控的进程。例如,创建一个名为`myapp.conf`的配置文件: ```shell sudo nano /etc/supervisor/conf.d/myapp.conf ``` 在配置文件中,你需要指定进程的命令、运行参数、工作目录等信息。以下是一个示例配置文件的内容: ``` [program:myapp] command=/path/to/myapp directory=/path/to/myapp/directory autostart=true autorestart=true user=myuser ``` 3. 更新配置:保存并关闭配置文件后,使用以下命令更新Supervisor的配置: ```shell sudo supervisorctl reread sudo supervisorctl update ``` 4. 操作进程:使用`supervisorctl`命令来管理和监控进程。例如,启动进程: ```shell sudo supervisorctl start myapp ``` 停止进程: ```shell sudo supervisorctl stop myapp ``` 重启进程: ```shell sudo supervisorctl restart myapp ``` 查看进程状态: ```shell sudo supervisorctl status ``` 这些是基本的Supervisor使用步骤。你可以根据自己的需求进行进一步的配置和操作,例如设置日志、限制进程资源等。请确保在使用Supervisor之前,你已经了解和熟悉相关的配置选项和命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值