upstart重新唤起php进程
最近项目中有个php脚本进程自己偶尔挂掉了,每次都需要手动重启,用upstart可以轻松解决此问题
说到upstart之前,我先来说下linux的启动过程,分为5个阶段 内核的引导–》运行init–》系统初始化–》建立终端–》用户登录
而init程序的类型有
- SysV: init, CentOS 5之前, 配置文件: /etc/inittab
- Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system0
- Uptart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf
Ubutu从6.10就开始用upstart()代替原来的sysVint,centos也用systemd 代替sysvint,对服务进程的管理
Upstart作业的10种状态:
waiting: 初始状态。starting: 作业开始启动。pre-start: 运行pre-start配置节。spawned: 运行script或exec节。post-start: 运行post-start节。running: 运行完post-start节之后的临时状态,表示作业正在运行(但可能没有关联的PID)。pre-stop:运行pre-stop节。stopping:运行完pre-stop节之后的临时状态。killed: 作业要被终止。post-stop: 运行post-stop节。作业的状态可通过inictl status命令输出的中status域来显示给用户。
因为upstart启动会自动加载/etc/init/ 目录下所有的*.conf文件,所以我在该目录下编辑文件
vim /etc/init/async_user_regist.conf
description "async user register"
author "sunny"
start on startup
stop on shutdown
respawn
script/usr/local/php7/bin/php -f /home/ubuntu/work/heyhou-backend/script/async_user_register.php
end script
pre-start scriptexec echo sync_user_register pre-start >> /home/ubuntu/upstart.txt
end script
post-start scriptexec echo async_user_register post-start >> /home/ubuntu/upstart.txt
end script
pre-stop scriptexec echo async_user_register pre-stop >> /home/ubuntu/upstart.txt
end script
post-stop scriptexec echo async_user_register post-stop >> /home/ubuntu/upstart.txt
end script
这个地方需要注意下。当sudo start async_user_regist 切换成了root用户,与当前用户ubuntu所在的环境不同,php最好写全路径/usr/local/php7/bin/php
initctl是一个具有root权限的管理员可以使用init进程管理控制工具,可以通过这个工具和Upstart init daemon进行通信。initctl可以用来启动或终止作业、列表作业、以及获取作业的状态、发出事件、重启init 进程等等。比如initctl list让您可以通过标识作业状态来深入了解系统操作,它告诉您目前正在等待哪些服务以及哪些服务目前是活动的。initctl工具还可以显示用于调试而接收的事件
initctl基本用法
initctl help
作业 commands:start Start job.stop Stop job.restart Restart job.reload Send HUP signal to job.status Query status of job.list List known jobs.
保存 退出
sudo initctl start async_user_regist 或者sudo start async_user_regist 重点内容
upstart重新唤起php进程相关推荐
- 浅析 Linux 初始化 init 系统: UpStart
浅析 Linux 初始化 init 系统: UpStart Upstart 简介 假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/inittab 文件了,这 ...
- 第二部分:浅析 Linux 初始化 init 系统:upstart
Upstart 简介 假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/inittab 文件了,这是因为 Ubuntu 使用了一种被称为 upstart 的新 ...
- 浅析 Linux 初始化系统(系统服务管理和控制程序/init system) -- UpStart
文章目录 一.Upstart 简介 (一)开发 Upstart 的缘由 (二)Upstart 的特点 二.Upstart 概念和术语 (一)Job (二)Job 生命周期 (三)事件 Event 1. ...
- 进程控制1--fork vfork函数
linux系统调用fork()创建一个和当前进程完全相同的拷贝进程,其中父进程和子进程的代码段,堆栈段,数据段均独立 进程必须的4要点: a.要有一段程序供该进程运行 b.进程专用的系统堆栈空间. c ...
- 浅析 Linux 初始化 init 系统,第 2 部分: UpStart
近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经淡出历史舞台,新系统 UpStart 和 systemd 各有特点,而越来越多的 Linux 发行版采纳了 ...
- Airflow 中文文档:用upstart运行Airflow
Airflow可以与基于upstart的系统集成. Upstart会在系统启动时自动启动/etc/init具有相应*.conf文件的所有气流服务. 失败时,upstart会自动重启进程(直到达到*.c ...
- Linux运维实战:Linux清理僵尸进程
一.僵尸进程简介: 官方解释:当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程. 一般在系统中僵尸进程的关键字为defunct或者dead,僵尸进程 ...
- upstart 启动
Upstart 简介 假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/inittab 文件了,这是因为 Ubuntu 使用了一种被称为 upstart 的新 ...
- Linux系统init过程之 UpStart
本文引自: 浅析 Linux 初始化 init 系统,第 2 部分: UpStart Upstart 简介 假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/ ...
最新文章
- 年度回顾:2018年的人工智能/机器学习惊喜及预测19年的走势
- 计算机教师资格证报考科目,还在纠结报考教师资格证该选哪个科目呢?看完这篇,你不再迷茫...
- html5中上传图片
- 大学计算机基础课程报告python-基于Python的“大学计算机基础”课程教学设计.doc...
- 程序员面试题精选100题(50)-树的子结构[数据结构]
- 解决Mysql无法导入存在null数据的问题
- Linux C 函数指针应用---回调函数
- Java ObjectOutputStream writeDouble()方法与示例
- python自定义异常_Python自定义异常
- 各种常用STL容器选择 需求分析笔记
- [LeetCode][easy]Longest Commong Prefix
- php smarty 调试模式,Smarty3调试
- anaconda 完全卸载——重装
- Latex(katex)csdn 希腊字母表示,数学符号,集合符号,特殊标记
- 工作中PUSH用到的统计命令
- android 8.1评测,[中文字幕]WP8.1版HTC One M8与Android版对比评测
- 苹果的黑科技:如何让按不动的触控板产生点按的感觉
- 国家、省、市三级联动下拉列表
- v-distpicker 插件只要省市
- linux下查看主频和内存,linux 查看内存主频