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

PHP程序员玩转Linux系列文章:

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

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

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

进程的基础概念

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

8b083a12ffe6abe15a1a27e74e0432ac.png

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

ping baidu.com > xx.txt &

00b7520af9117f7d4444033559127c68.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该进程的时候,会自动重启.

与此相关的博文:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机初级包括php吗,计算机的基本组成包括什么

计算机的基本组成包括控制器、运算器、存储器、输入设备和输出设备。其中,控制器是整个计算机的中枢神经,它的功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据,协调计算机各部分工作及内存与外…

php 获取今天数据,ThinkPHP 按日期获取今天获取本周获取本月获取今年数据

ThinkPHP 按日期或指定时间段获取今天、获取本周、获取本月、获取今年等数据。Db(gh_user)->whereTime(addTime, >, 2020-10-1)->select(); // 大于某个时间Db(gh_user)->whereTime(addTime, select(); // 小于某个时间Db(gh_user)->whereTime(addTime, between…

PHP复杂度,php 常用算法和时间复杂度

按数量级递增排列,常见的时间复杂度有:常数阶O(1),对数阶O(log2n),线性阶O(n),线性对数阶O(nlog2n),平方阶O(n2),立方阶O(n3)复制代码 代码如下://二分查找O(log2n)function erfen($a,$l,$h,$f){if($l >$h){ return false;}$m intval(($l…

ubuntu11.10 源码编译安装php5.3.8,Ubuntu 11.10编译安装Nginx、PHP 5.3.8、MySQL、MongoDB、Memcached、SSL、SMTP...

手动安装php mongo扩展sudo apt-get install autoconfwget http://pecl.php.net/get/mongo-1.2.6.tgztar -zxvf mongo-1.2.6.tgzcd mongo-1.2.6/usr/local/php/bin/phpize./configure --with-php-config/usr/local/php/bin/php-configmakesudo make installecho extension mon…

php中常用的全局变量有,在PHP中如何使用全局变量的方法详解

但是你可以使用你自己的全局变量。使用关键字“global”你就可以把全局数据导入到一个函数的局部范围内。如果你不明白“变量使用范围”,请你自己参考PHP手册上的相关说明。下面是一个使用“global”关键字的演示例子:代码如下:正如你在上面的例子中看到…

java实现图像处理高通滤波,图像处理入门——滤波 - leo_de_macondo的个人页面 - OSCHINA - 中文开源技术交流社区...

模糊图像模糊的方法可以将每个像素的rgb值用周围像素的加权平均值来代替。比如用周围的9个像素来计算加权平均值,权值可以用一个3x3的矩阵来表示:| 1 2 1 || 2 4 2 | * (1/16)| 1 2 1 |中间的像素是要处理的像素,越靠近中间权…

java激光图,java-OpenCV Android跟踪激光点

我正在尝试在Android设备上使用OpenCV跟踪激光点.我想使用此激光点在我的cameraview上的画布上绘制.我已经将我的camerapreview转换为HSV色彩空间,并使用阈值过滤(仅在H和V通道上)来分离我的Laserdot.这相当健壮.public Mat onCameraFrame(CvCameraViewFrame cvf) {// Grab the…

matlab数据接口技术,matlab接口技术与应用

matlab接口技术与应用来源:mamingkeda作者:华仔浏览:1070时间:2016-08-10 14:18标签:摘要:matlab接口技术与应用应用程序接口的使用方法。全书分为10章,第1章是matlab环境和编程语言的概述&…

php iframe 上传文件,php+iframe 实现上传文件功能示例

本文实例讲述了phpiframe 实现上传文件功能。分享给大家供大家参考,具体如下:我们通过动态的创建iframe,修改form的target,来实现无跳转的文件上传。具体的实现步骤1.捕捉表单提交事件2.创建一个iframe3.修改表单的target,指向ifr…

break是python合法标识符,Python笔记——break的注意事项

ajax状态ajax的几个状态 Uninitialized 初始化状态.XMLHttpRequest 对象已创建或已被 abort() 方法重置. Open open() 方法已调用,但是 send() 方法未调 ...使用Npoi向Excel中插入图片先把数据库中的数据都导入到Excel表格中,把图片地址的路径全部转成绝对路径. 使用Npoi读取刚…

bulk Java提交数据,性能优化 – bulk提交 - ELK Stack 中文指南

在 CRUD 章节,我们已经知道 ES 的数据写入是如何操作的了。喜欢自己动手的读者可能已经迫不及待的自己写了程序开始往 ES 里写数据做测试。这时候大家会发现:程序的运行速度非常一般,即使 ES 服务运行在本机,一秒钟大概也就能写入…

catalog java,Java Connection getCatalog()方法与示例

通常,目录是一个目录,其中包含有关数据集,文件或数据库的信息。而数据库目录中包含所有数据库,基本表,视图(虚拟表),同义词,值范围,索引,用户和用户组的列表。Connection…

matlab 函数 命名参数,如何处理MATLAB中的函数参数的名称/值对

我喜欢使用结构为我的选择。这给你一个简单的方法来存储选项和一个简单的方法来定义它们。此外,整个事情变得相当紧凑。function example(varargin)%# define defaults at the beginning of the code so that you do not need to%# scroll way down in case you wan…

ssrf 过滤.php,SSRF技巧之如何绕过filter_var( )

0x00 前言前几天我读了两篇非常棒的论文:第一篇是发表在blackhat.com上的“A New Era of SSRF ”,讲述的是不同编程语言的SSRF问题;第二篇是由Positive Technology发表的一篇名为“PHP Wrapper” 的论文,它主要讲述的是如何以多种…

matlab 爬虫 例子,认识爬虫(示例代码)

爬虫分为两种:1.通用爬虫。2.聚焦爬虫。通用爬虫:搜索引擎用的爬虫系统。一.目标:爬取所有网站的网页下载下来,存放到本地服务器里形成备份。二.抓取流程:a.首选选取一部分已有的url,把这些url放到待爬取队列。b.从队列…

如何用notepad写php,notepad新手怎么使用

新手使用notepad的几个小技巧:一、软件始终置于屏幕最前方有时候我们在运行程序时,需要将notepad放置到屏幕最前方,此时只需要在工具栏中点击:view——always on tops;此时notepad就会一直处于屏幕最前方。注&#xff…

rman打开oracle归档日志,Oracle RAC中使用RMAN管理归档日志

RMAN归档配置的两种方案1.在Oracle asm和集群文件系统时的归档方案对于Oracle RAC来说首选是使用Oracle asm作为reocvery区域。可选择的你也可以使用集群文件系统的归档方案。如果你使用了一种集群文件系统,那么当进行日志归档时每个节点会将归档日志写到集群文件系…

oracle10g数据库复制,oracle -10g 中Duplicate 复制数据库

oracle --10g 中Duplicate 复制数据库本次实验通过duplicate命令,在本机环境中创建一个复制数据库。目标数据库为hongye、复制数据库为catdb。环境别名设置:alias sqlrlwrap sqlplus /nologalias rmanrlwrap rmanalias dbscd $ORACLE_HOME/dbsalias rdbc…

oracle resize什么意思,Oracle调整表空间大小resize

SQL> ALTER DATABASE DATAFILE D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA RESIZE 300m;ALTER DATABASE DATAFILE D:\ORACLE\ORADATA\ICAPP\IC_DATA6.ORA RESIZE 300m*ERROR 位于第 1 行:ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据但是SQL>select d.filename,d.fi…

双网卡主机配置oracle监听,VirtualBox设置双网卡实现虚机上网及主宿机互访

VirtualBox 虚拟机之间互连、主宿机互连、以及主宿机连接互联网的功能非常实用。下面介绍实现主宿机通过虚拟网卡互连方式。1 全局配置VirtualBox安装完成后,会在系统中装一块虚拟网卡,我们在 管理> 全局设定中可以看到。这块网卡是在 Host-Only 连接…