1. 云栖社区>
  2. PHP教程>
  3. 正文

shell的通用启动与管理脚本(基于nohup)

作者:用户 来源:互联网 时间:2017-11-30 16:50:16

管理shell脚本启动基于nohup通用

shell的通用启动与管理脚本(基于nohup) - 摘要: 本文讲的是shell的通用启动与管理脚本(基于nohup), shell脚本 (文件名:my_exec.sh) ############# 配置项 ############################### keyword='a.php' #查找进程是否存在的关键词 line=`ps aux |

shell脚本 (文件名:my_exec.sh)


############# 配置项 ###############################


keyword='a.php' #查找进程是否存在的关键词 line=`ps aux | grep ${keyword} | wc -l` # 查看进程是否存在的命令 commend='php a.php' # nohup 执行的commend; 不要带 输出重定向 和 & !!!!!! output_file='1.txt' #输出重定向文件 pid_file='exec_pid.pid' #pid文件 确保唯一且文件夹可写


############ 配置项 end ############################


###检查状态 function check_running(){ if [[ $line -lt 2 ]] ## 去除 gerp 时产生的进程 thenecho "未运行"##### 未执行的操作 elseecho "正在运行" ##### 已执行的操作 fi }


function start_running(){


if [[ $line -lt 2 ]] thenecho "正在开始。。。。"eval "nohup ${commend} >>${output_file} 2>&1 &"echo $! > ${pid_file}#### 保存pid 文件sleep 2echo "成功" elseecho "程序已经运行,请不要重复运行"


fi }


function stop_running(){ if [[ $line -lt 2 ]] thenecho "程序未运行" elif [ ! -f "$pid_file" ] thenecho "pid文件不存在,请使用 kill 删除进程" elseecho "正在停止。。。。"kill -9 `cat ${pid_file}` ##### 自己的停止方法 尽量不要用 kill -9rm -f $pid_filesleep 2echo "成功" fi


} case $1 in start):start_running;;; check):check_running;;; stop):stop_running;;; restart):stop_running;start_running;;; *):echo "请输入命令:sh start_exec.sh【start|stop|restart|check】"


;;


esac


php脚本 (自己的后台脚本,一定要是能够长久运行的)


<?php while(true){sleep(1);file_put_contents('1.txt',date('Y-m-d H:i:s')."/r/n",FILE_APPEND); }


?>


方法 sh shart_exec.sh (start | stop | restart | check)


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索管理 , shell , 脚本 , 启动 , 基于 , nohup 通用 ,以便于您获取更多的相关知识。