zoukankan      html  css  js  c++  java
  • Linux 开机启动 php socket

    问题

     php socket 服务在服务器重启后无法自动启动,需要添加开机启动脚本。有以下问题

    1. 开机延迟3分钟后,再启动socket服务
    2. socket服务有3个模块需要按照先后顺序启动  register>gateway>business_worker
    3. 每个模块单独进程,运行不同的启动脚本
    4. 启动脚本是交互式命令,在启动成功后需要输入 ctrl-c 结束命令

     方案

     ## 对于开机延迟启动,可以使用  参考地址 方案

    1. 写一个实现延时启动的脚本myscript,在第一行加入如下内容:             
      # 用于延时启动3分钟
      sleep 180    

    2. 修改文件 /etc/rc.local,增加如下一行: 
      nohup /path/myscript &

       nohup xxx & 参见我的另一随笔

    1. nohup 表示后台运行
    2. &    是与nohup一起的,表示不受终端关闭信号影响,保持后台运行。如果没有&,在终端关闭时,当前终端执行的nohup进程也会被stop

    ##  交互式命令,模拟输入 ctrl-c 结束

     首先,我需要模拟一个需要使用 ctrl-c 才能退出的脚本,用于测试是否可以工作

    备注:使用 kill pid 可以直接退出 需要 ctrl+c 命令的进程。但查询资料后发现 socket php 脚本支持无交互式命令,或者说可以自动退出。

    ##  执行顺序逻辑

    启动脚本在模块运行成功后会打印 Input "php test_php.php stop" to stop. Start success.  信息。

    在开机启动脚本中判断启动脚本是否包含该信息,以便执行不同逻辑

     1 #!/bin/bash
     2 
     3 # 保存 脚本运行结果
     4 php1_start=$( 
     5 cd /home/duoxuan/workspace/demo_test && 
     6 /usr/bin/php test_php.php  start -d  
     7 | grep success |wc -l )
     8 
     9 # 判断是否含有success输出,即是否运行成功
    10 if [ $php1_start -gt 0 ];then
    11 echo 第一个运行成功 Start success.
    12 fi

     示例
    编写一个开机延迟启动脚本名为 start_php-socket_reboot.sh
    为其添加运行权限 chmod +x start_php-socket_reboot.sh
    直接运行start_php-socket_reboot.sh
    第一个运行成功 Start success.
    第二个运行成功 Start success.
    第三个运行成功 Start success.

    将脚本添加到开机启动中

     nohup /workspace/start_php-socket_reboot.sh &
     
     
  • 相关阅读:
    中风后遗症
    慢性湿疹半年
    女子脚背痒肿案
    肾盂肾炎病案
    鼻衄二则
    糖尿病病案
    慢性肠炎2例
    子宫肌瘤病案2例
    眩晕病案
    前列腺炎病案3例
  • 原文地址:https://www.cnblogs.com/duoxuan/p/9994378.html
Copyright © 2011-2022 走看看