linux下自动重启进程脚本

本文大纲:

0.背景故事-程序自动崩溃下无奈找办法自动检测重启;

1.如何利用shell脚本判断进程是否在运行,若没有运行则立即运行;

2.利用nohup后台运行判断脚本;

3.如何查看并杀死后台进程;

 

0.背景大纲

最近,在国外买了个服务器,因为是OPENVZ架构,所以找了篇帖子搭建了SSR+BBR的通道,以下是帖子地址:

OpenVZ架构VPS安装BBR的五种方法(UML/LKL/LKL_Rinetd) | 可乐博客

但是,两天后,我的SSR莫名连接不上了,手动重装了系统,重新配置了SSR,但是两天后,事情又发生了。于是,我怀疑是我的VPS内存空间的问题,我的空间本来就小,128M内存,能跑BBR已经不错了。于是,我开始想办法让SSR崩溃后重新连接,下面是我找到的一个办法,shell脚本判断进程。

 

1.shell判断进程脚本怎么写

#!/bin/sh
date >> ssrcron.txt
echo "the shell is running" >> ssrcron.txt
while :
do
stillRunning=$(ps -ef |grep SCREEN |grep -v "grep")
if [ -z "$stillRunning" ]
then
date >> ssrcron.txt
echo "the screen was closed!!!!!!!!!!!!!!!!!" >> ssrcron.txt
sh ./run.sh start
date >> ssrcron.txt
echo "the screen was started!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> ssrcron.txt
fi
sleep 10
done

以上是代码

运行脚本:sh ssrcron.sh

 

2.利用nohup命令后台运行脚本

当你使用sh方式运行脚本的时候,如果关闭终端,那么进程也会随之中断。这时候,就需要让进程在后台保持运行,我的办法是利用nohup命令:

命令:nohup sh ssrcron.sh

这个命令会自动在本文件夹下生产nohup.out,你的sh ssrcron.sh的命令的输出会打印在里面。

 

3.如何查看并杀死后台进程

当你想关闭nohup进程的时候,可以使用ps -ef,来找到进程,如图:

杀进程命令:kill -9 [pid],如我要杀死途中进程,我的命令是:kill -9 11986,回车。

 

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值