我从init进程的respawn参数上得到了灵感,写了一个简单的脚本实现自动重启进程。脚本如下:
respawn.sh:实现测试命令printHello.sh的进程被杀死后,自动重启printHello.sh
- #!/bin/bash
- # respawn some command
- while true
- do
- # Command that start the process
- # I use a test script named printHello.sh
- $PWD/printHello.sh
- continue
- done
测试用脚本
printHello.sh
- #!/bin/bash
- while true
- do
- echo "Hello"
- done
请将两个脚本放在同一目录下并赋予运行权限。
$ ./respawn.sh
在另一终端中运行
$
# 确定printHello.sh是否运行
$ pgrep printHello.sh
$
# 杀掉所有printHello.sh的process
$ killall printHello.sh
在第一个终端中的输出并没有中断,而是重新运行了printHello.sh
转载于:https://blog.51cto.com/alucod/910035