多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
* 用 vim建立 /etc/init.d/mikkle 文件 ~~~ #!/bin/bash # chkconfig: 2345 10 90 # description: Start and Stop Mikkle # power by Mikkle # QQ 776329498 PHP="/www/wdlinux/php/bin/php" MIKKLE_DIV="/www/web/mikkle" MIKKLE_SCRIPT='think' #服务脚本 MIKKLE_NAME="mikkle" #你自定义的服务名称 MIKKLE_PID="${MIKKLE_DIV}/shell/service/${MIKKLE_NAME}.pid" #服务PID MIKKLE_LOG="${MIKKLE_DIV}/shell/log/${MIKKLE_NAME}.log" #服务运行日志 记录错误信息 #判断程序是否已经在运行 status_script(){ ps -fe|grep ${MIKKLE_SCRIPT}|grep ${MIKKLE_NAME}|grep -v grep if [ $? -eq 0 ] then echo ${0}' Is running' running=1 elif [ $? -ne 0 ] then echo $0" is NOT running" running=2 fi } #启动脚本,先判断脚本是否已经在运行 start_script(){ status_script if [ ${running} -eq 1 ] then echo ${0}' Is starting ...' else echo 'start' ${0} '...' cd ${MIKKLE_DIV} nohup ${PHP} ${MIKKLE_SCRIPT} ${MIKKLE_NAME}>/dev/null 2>${MIKKLE_LOG} & echo $! > ${MIKKLE_PID} echo "start finish,PID $!" fi } #停止脚本 stop_script(){ status_script if [ ${running} -ne 1 ] then echo ${0}' no starting '$?... else PIDS=`ps aux|grep ${MIKKLE_SCRIPT}|grep ${MIKKLE_NAME}| grep -v grep |awk '{print $2}'` for kill_pid in ${PIDS} do kill -TERM ${kill_pid} >/dev/null 2>&1 echo "Kill pid ${kill_pid} .." done echo 'stop complete' return 1 fi } #重启脚本 reload_script(){ stop_script sleep 3 start_script } #入口函数 handle(){ case $1 in start) start_script ;; stop) stop_script ;; status) status_script ;; reload) reload_script ;; restart) reload_script ;; *) echo 'MIKKLE OF THIS SERVER IS '${0} 'status|start|stop|restart'; ;; esac } if [ $# -eq 1 ] then handle $1 else echo 'Mikkle OF THIS SERVER IS '${0} 'status|start|stop|restart'; fi ~~~ * 把文件权限设成 755 ~~~ chmod 755 /etc/init.d/mikkle ~~~ * 设成开机启动 ~~~ chkconfig mikkle on ~~~ 搞定 试一下 ~~~ service mikkle status service mikkle start service mikkle service mikkle stop ~~~ ![](https://box.kancloud.cn/4a9eb74acd2d3c97d8df053564a2a32c_611x453.png) * * * * * > `dos2unix shell/mikkle.sh` dos2unix这个是转码命令 当提示\r\n错误时 很有用 上述代码全是搬运 mikkle的 当服务不稳怕出现意外的话,可以把命令加入到supervisor 进程管理当中 具体可以看看这篇博客当中 https://blog.csdn.net/xyang81/article/details/51555473 https://www.landui.com/help/show-7313 将命令添加到supervisorctl(2018-05-03更新) - - 1.按照上述文档中安装好 - 2.复制新的命令,配置文件 ![](https://box.kancloud.cn/ab1839f9db9f45fbd6a8a3709aa88b07_535x82.png) 复制一份新的命令行配置工具 ~~~ cp YApiGhost.conf php_task.conf ~~~ ~~~ [program: php_task] #运行程序的命令 command=/usr/local/php7.1/bin/php /home/www/dev_tpshop/think test#此次一定不要有任何的代码,空格,注释(包括我现在写的这一句) directory=/home/www/dev_tpshop ; #命令执行的目录 autorestart=true ; #程序意外退出是否自动重启 stderr_logfile=/var/log/php_task.err.log ; #错误日志文件 stdout_logfile=/var/log/php_task.out.log ; #输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; #进程环境变量 #user=root; #进程执行的用户身份 stopsignal=INT ~~~ - 3.重启superivor `supervisorctl reload` - 4.查看命令行运行状态 `ps -aux | grep think` ![](https://box.kancloud.cn/9ff23a172b72183b8180fd7e30a0d31b_864x48.png) ![](https://box.kancloud.cn/8a4d1105590ea00cf6f665ebc3cc9007_856x257.png) ### 成功