千家信息网

linux下如何实现监视进程和崩溃挂掉后自动重启的shell脚本

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关linux下如何实现监视进程和崩溃挂掉后自动重启的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何保证服务一直运行?如何
千家信息网最后更新 2026年11月04日linux下如何实现监视进程和崩溃挂掉后自动重启的shell脚本

这篇文章将为大家详细讲解有关linux下如何实现监视进程和崩溃挂掉后自动重启的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题。在Linux系统中,强大的shell就可以很灵活的处理这样的事务。
下面的shell通过一个while-do循环,用ps -ef|grep 检查loader进程是否正在运行,如果没有运行,则启动,这样就保证了崩溃挂掉的进程重新被及时启动。
必须注意两点:
1、ps |grep 一个进程时必须加上其路劲,否则容易grep到错误的结果;
2、必须用 -v 从结果中去除grep命令自身,否则结果非空。

代码如下:


#!/bin/sh
#=====================
#YuanHui.HE
#khler@163.com
#=====================
while :
do
echo "Current DIR is " $PWD
stillRunning=$(ps -ef |grep "$PWD/loader" |grep -v "grep")
if [ "$stillRunning" ] ; then
echo "TWS service was already started by another way"
echo "Kill it and then startup by this shell, other wise this shell will loop out this message annoyingly"
kill -9 $pidof $PWD/loader
else
echo "TWS service was not started"
echo "Starting service ..."
$PWD/loader
echo "TWS service was exited!"
fi
sleep 10
done

如果启动此shell时发现进程已经存在,说明以别的方式启动了进程而不是此shell,那么它会持续提醒找到进程,解决办法是,要么只用此shell启动服务,要么一经发现以其他方式启动的服务即kill掉,上面的语句就是这么干的:
kill -9 $pidof $PWD/loader

关于"linux下如何实现监视进程和崩溃挂掉后自动重启的shell脚本"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

进程 服务 篇文章 结果 保证 运行 脚本 监视 方式 更多 要么 面的 不错 实用 强大 事务 代码 内容 办法 命令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技 蓝思科技飞鸽互联网 互联网科技工作委员会副主任毛军 朗新科技与工业互联网 互联网科技的 奇士达互联网科技 兼蜜互联网科技 金融科技和互联网金融 须眉科技是互联网公司吗 知域互联网科技有限公司大骗子 宜昌元轩互联网科技有限公司 苏州铭阳互联网科技有限公司 爱医互联网络科技 上海京穆互联网科技有限公司 江苏苏星互联网科技有限公司 艺电能源互联网科技有限公司招聘 互联网金融运营模式中的金融科技 青岛易易互联网科技 山东蛋芒互联网科技有限公司 科技美学互联网 艺术 科技与互联网发展 艾特科技互联网 壹账通互联网科技 腾讯科技 互联网女皇 互联网科技logo设计 恒生互联网科技指数跳水 济南小医互联网科技有限公司招聘 银川新华互联网科技学校是国营吗 科技互联网经济论坛 互联网的黑科技实验室
0