加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

PHP程序员玩转Linux系列 运用supervisor实现守护进程

发布时间:2023-07-26 10:34:43 所属栏目:Linux 来源:互联网
导读:   首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令



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



  &这个使用是当
  首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令
 
  如:nodejs index.js & 或者 nohup nodejs index.js &
 
  &这个使用是当退出此次终端会话的时候就会停止, nohup这个命令理论上是可以后台一直执行的,但是当出现某些异常的时候,还是会退出.
 
  进程的基础概念
 
  进程是执行程序的过程.unix系统的老祖宗内核进程的ppid都是是0,比如:init进程的pid是1,ppid是0;其他进程都是从init进程的基础上fork出来的,使用pstree命令可以看到进程树
 
  supervisor,进程
 
  测试使用&实现一个后台进程,并把后台进程再转回到前台,下面是把进程放到后台,[1]这个是job的号
 
  ping baidu.com > xx.txt &
 
  supervisor,进程
 
  把后台进程重新转到前台,%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可以实现这样的进程,该进程并且会在被杀掉的时候自动再次重启.
 
  #安装supervisoryum install supervisor
 
  在配置文件(/etc/supervisord.conf)配置一下:
 
  program:nodejsblog 这里:后面的是个名字,可以随便起
 
  command= 这里是要执行的命令
 
  user= 这里是执行用户
 
  [program:nodejsblog]command=/usr/bin/nodejs /var/www/html/nblog index.jsuser=root
 
  开启 supervisord -c /etc/supervisord.conf  
 
  此时nodejs的守护进程也会随着启动了可以使用ps命令去查看一下,并且在你kill该进程的时候,会自动重启.
 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!