shell脚本实现程序重启
2017-11-06 20:11
232 查看
最近做的ipc端HLS推流不稳定偶尔要宕机,而云服务器又希望能随时连上ipc。在ipc端有没有supervisor这种工具,就需要自己想下怎么然异常退出的程序重启起来。经过查阅网络资料,通过shell即可实现。
Shell脚本中用#表示注释,相当于C语言的//注释。但如果#位于第一行开头,并且是#!(称为Shebang)则例外,它表示该脚本使用后面指定的解释器/bin/sh解释执行
2.函数定义
shell中函数的定义格式如下:
用函数时可以向其传递参数。在函数体内部,通过 n的形式来获取参数的值1 2当n>=10时,需要使用{n}来获取参数。
3 .
echo 打印命令
exit 为退出脚本
4 if [] then else fi 语句
在Shell中用if、then、elif、else、fi这几条命令实现分支控制。
如果两条命令写在同一行则需要用; 如果一行只写一条命令就不需要写;号了
:是一个特殊的命令,称为空命令,该命令不做任何事。
代码中实现的功能为:
$#:添加到Shell的参数个数。如果参数不是1即调用 help
5.循环
6 pgrep
pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id
PID=
if [ -z “$PID” ]
-z 字符串长度为0 即为真,即pgrep 没有找到参数传入进程名的pid,调用exec重新执行目标程序。
#!/bin/sh help(){ echo "Usage: $0 <process_name>" exit 0 } # 参数范围检查 if [ "$#" != 1 ]; then help fi #检查进程实例是否已经存在 while [ 1 ]; do PID=`pgrep ${1}` if [ -z "$PID" ] then echo "restart process: $1 and date is: `date`" exec ./${1} & fi #循环检测时间 sleep 2 Done
一些说明
1 #!/bin/shShell脚本中用#表示注释,相当于C语言的//注释。但如果#位于第一行开头,并且是#!(称为Shebang)则例外,它表示该脚本使用后面指定的解释器/bin/sh解释执行
2.函数定义
shell中函数的定义格式如下:
函数名(){ command1 commandN [ return value ] }
用函数时可以向其传递参数。在函数体内部,通过 n的形式来获取参数的值1 2当n>=10时,需要使用{n}来获取参数。
3 .
echo 打印命令
exit 为退出脚本
4 if [] then else fi 语句
在Shell中用if、then、elif、else、fi这几条命令实现分支控制。
If [] then xxx(满足条件执行语句) else Xxx fi
如果两条命令写在同一行则需要用; 如果一行只写一条命令就不需要写;号了
:是一个特殊的命令,称为空命令,该命令不做任何事。
代码中实现的功能为:
$#:添加到Shell的参数个数。如果参数不是1即调用 help
5.循环
While[循环条件] do ..... Done 之间为循环内容
6 pgrep
pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id
PID=
pgrep ${1}查找参数1传入进程名 并将并赋值给PID
if [ -z “$PID” ]
-z 字符串长度为0 即为真,即pgrep 没有找到参数传入进程名的pid,调用exec重新执行目标程序。
相关文章推荐
- 用shell脚本实现监控程序自动重启
- 用shell脚本实现监控程序自动重启
- 用shell脚本实现监控程序自动重启
- 用shell脚本实现监控程序自动重启
- 用shell脚本实现监控程序自动重启
- linux c程序中获取shell脚本输出的实现方法
- Shell脚本实现每个工作日定时执行指定程序(学习记录)
- linux c程序中获取shell脚本输出的实现方法
- shell脚本编写,实现爬虫挂掉后重启
- linux c程序中获取shell脚本输出的实现方法
- 使用c和shell实现远程tomcat的重启备份脚本
- Shell脚本实现每个工作日定时执行指定程序
- linux c程序中获取shell脚本输出的实现方法
- linux下通过脚本实现自动重启程序
- linux 通过脚本实现自动重启程序的方法
- SHELL脚本实现服务宕机监控自动重启
- linux下通过脚本实现自动重启程序的方法
- linux下通过脚本实现自动重启程序
- 程序崩掉后 自动重启的shell脚本
- 利用SHELL脚本实现文件完整性检测程序(1.2版更新)