Linux 开机启动 php socket
问题
php socket 服务在服务器重启后无法自动启动,需要添加开机启动脚本。有以下问题
- 开机延迟3分钟后,再启动socket服务
- socket服务有3个模块需要按照先后顺序启动 register>gateway>business_worker
- 每个模块单独进程,运行不同的启动脚本
- 启动脚本是交互式命令,在启动成功后需要输入 ctrl-c 结束命令
方案
## 对于开机延迟启动,可以使用 参考地址 方案
- 写一个实现延时启动的脚本myscript,在第一行加入如下内容:
# 用于延时启动3分钟
sleep - 修改文件 /etc/rc.local,增加如下一行:
nohup /path/myscript &
nohup xxx & 参见我的另一随笔
- nohup 表示后台运行
- & 是与nohup一起的,表示不受终端关闭信号影响,保持后台运行。如果没有&,在终端关闭时,当前终端执行的nohup进程也会被stop
## 交互式命令,模拟输入 ctrl-c 结束
首先,我需要模拟一个需要使用 ctrl-c 才能退出的脚本,用于测试是否可以工作
备注:使用 kill pid 可以直接退出 需要 ctrl+c 命令的进程。但查询资料后发现 socket php 脚本支持无交互式命令,或者说可以自动退出。
## 执行顺序逻辑
启动脚本在模块运行成功后会打印 Input "php test_php.php stop" to stop. Start success. 信息。
在开机启动脚本中判断启动脚本是否包含该信息,以便执行不同逻辑
#!/bin/bash # 保存 脚本运行结果
php1_start=$( \
cd /home/duoxuan/workspace/demo_test && \
/usr/bin/php test_php.php start -d \
| grep success |wc -l ) # 判断是否含有success输出,即是否运行成功
if [ $php1_start -gt ];then
echo 第一个运行成功 Start success.
fi
第一个运行成功 Start success.
第二个运行成功 Start success.
第三个运行成功 Start success.
将脚本添加到开机启动中
Linux 开机启动 php socket的更多相关文章
- Linux 开机启动
Linux开机启动(bootstrap) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机开机是一个神秘的过程.我们只是 ...
- linux 开机启动过程详解
Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等 ...
- linux开机启动
开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程.分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径. 启动第一步--加载BIOS 当你打开计算机电源,计算机 ...
- Linux开机启动程序详解
Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...
- Linux开机启动程序详解[转]
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- LINUX开机启动过程
LINUX开机启动过程 启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息 ...
- Linux开机启动十步骤
启动第一步--加载BIOS 启动第二步--读取MBR 启动第三步--Boot Loader 启动第四步--加载内核 启动第五步--用户层init依据inittab文件来设定运行等级 启动第六步--in ...
- Linux开机启动(bootstrap)上
Linux开机启动(bootstrap) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机开机是一个神秘的过程.我们只是 ...
随机推荐
- 微信小程序,加载更多
html <!-- 头部 --> <view class='tab'> <view class="tab-new {{selected_new?'active' ...
- 问题1——之Linux虚拟机ip地址消失
原文转自 https://blog.csdn.net/keep_walk/article/details/75115926 以前一直通过ifconfig命令查看ip地址,但是今天用XShell连接自己 ...
- 使用metrics统计接口tps
metrics的简单介绍 metrics是一种性能指标工具,有很多开源工具使用之来来作为其性能监控,如Hadoop,Kafka,Spark,JStorm等. metrics使用最主要有三个东西: Me ...
- Python自学:第二章 使用函数str( )避免类型错误
age = 23 message = "Happy " + str(age) + "rd Birthday" print(message) 输出位 Happy ...
- 2019ExcelVBA一些自己掉进过的坑
1.公式手动重算问题 为避免代码执行过程中引发公式自动重算,拖慢运行速度,在代码中设置了公式手动重算,并计划在代码执行结束前恢复.如果在代码执行过程中捕获错误就直接退出,而没有执行到恢复公式自动重算, ...
- 漏洞复现——Apache HTTPD多后缀解析漏洞
漏洞原理:Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache Httpd这个特 ...
- 解决pycharm添加第三方包失败
今天想用pycharm打开图像,但是import scipy的时候报错了,报错内容如下: from scipy.misc import imread Traceback (most recent ca ...
- redis 版的 hello world
为 redis 添加一个命令,效果如下图: 在 Server.h 中加入命令处理函数的声明: void meCommand(client *c); 在 Server.c 的命令表中加入: struct ...
- sin n次方 x 的降幂公式
A(n) = ∫ sinⁿx dx= ∫ sinⁿ⁻¹xsinx dx= - ∫ sinⁿ⁻¹x d(cosx)= - sinⁿ⁻¹xcosx + ∫ cosx • d(sinⁿ⁻¹)= - sinⁿ ...
- jquery.form.js 实现异步上传
前台: <form id="formSeacrh" action="/ResumeInfo/uploadFile" method="post&q ...