PHP程序员玩转Linux系列 使用supervisor实现守护进程
作者:陶士涵 发布时间:2023-10-12 14:50:21
PHP程序员玩转Linux系列文章:
1.PHP程序员玩转Linux系列-怎么安装使用CentOS
2.PHP程序员玩转Linux系列-lnmp环境的搭建
3.PHP程序员玩转Linux系列-搭建FTP代码开发环境
4.PHP程序员玩转Linux系列-备份还原MySQL
5.PHP程序员玩转Linux系列-自动备份与SVN
6.PHP程序员玩转Linux系列-Linux和Windows安装nginx
7.PHP程序员玩转Linux系列-nginx初学者引导
8.PHP程序员玩转Linux系列-Nginx中的HTTPS
首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令
如:nodejs index.js & 或者 nohup nodejs index.js &
&这个使用是当退出此次终端会话的时候就会停止, nohup这个命令理论上是可以后台一直执行的,但是当出现某些异常的时候,还是会退出.
进程的基础概念
进程是执行程序的过程.unix系统的老祖宗内核进程的ppid都是是0,比如:init进程的pid是1,ppid是0;其他进程都是从init进程的基础上fork出来的,使用pstree命令可以看到进程树
测试使用&实现一个后台进程,并把后台进程再转回到前台,下面是把进程放到后台,[1]这个是job的号
ping baidu.com > xx.txt &
把后台进程重新转到前台,%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开发个人博客(七)后台登陆
[nodejs] nodejs开发个人博客(六)数据分页
[nodejs] nodejs开发个人博客(五)分配数据
[nodejs] nodejs开发个人博客(四)数据模型
[nodejs] nodejs开发个人博客(三)载入页面
[nodejs] nodejs开发个人博客(二)入口文件
[nodejs] nodejs开发个人博客(一)准备工作
来源:http://www.cnblogs.com/taoshihan/p/6693762.html


猜你喜欢
- 401状态码的含义和处理401状态码的含义axios向服务器端发送请求时,有两种情况会出现401状态码(unauthorized未授权):1
- 1、说明关键词传递以“形参变量名=实参”的形式参与实参关联,根据形参的名称进行参数传递,使实参和形参的顺序不一致。不用担心定义函数时参数的顺
- 一、Pycharm下载与安装附:Python、Pycharm和Anaconda的关系:Python是一种解释型、面向对象、动态数据类型的高级
- 本文主要介绍了Python中list[::-1]的几种用法,分享给大家,具体如下:s = "abcde"list的[]中
- 前言 绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer、Share P
- 前言:最近碰到业务需要根据PSD文件实现PSD文件解析图层功能,搜到了Python的一个解析PSD的库。这个库就是psd-tools,psd
- 本文实例为大家分享了mysql 5.6.17 安装教程简单版,供大家参考,具体内容如下1.linux版mysql下载(建议不要下5.7,安装
- 准备下载安装Python3官网下载即可,选择合适的版本:https://www.python.org/downloads/安装一直下一步即可
- pytorch部署到jupyter中在安装Aconda的同时,会将jupyter notebook一起安装,不过这里的jupyter not
- 设计原理从结构上来说,一个简单的图形界面,需要由界面组件、组件的事件 * (响应各类事件的逻辑)和具体的事件处理逻辑组成。界面实现的主要工作
- 在JavaScript中,阻止表单默认提交行为的方法有两种,分别是:(1) return false示例代码<form name=&q
- 首先要扩展自带的auth_user表我就放个图吧,同时setting中应该设置:# 此处重载是为了使UserProfile生效AUTH_US
- 何为聚类分析聚类分析或聚类是对一组对象进行分组的任务,使得同一组(称为聚类)中的对象(在某种意义上)与其他组(聚类)中的对象更相似(在某种意
- <?php list($usec, $sec) = explode(' ', microtime()); $timer
- '定义变量 Dim cn,rs,Sql Sql = "sel
- 不了解的同学先“点这里”看看什么是Firebug。简单来说,Firebug是Firefox上用来监视、编辑和调试站点的CSS、HTML、DO
- 介绍:UUID是128位的全局唯一标识符,通常由32字节的字符串表示。使用:import uuid print uuid.uuid1()14
- PDOStatement::bindValuePDOStatement::bindValue — 把一个值绑定到一个参数(PHP 5 >
- 环境centos7django 1.11nginx白话我们可以使用Template 设置我们的网页,同时,一个完美的网页需要css,js,i
- keras自定义函数时候,正常在模型里自己写好自定义的函数,然后在模型编译的那行代码里写上接口即可。如下所示,focal_loss和fbet