Linux小技巧3--防止程序挂掉的shell脚本

2024-05-31 00:32

本文主要是介绍Linux小技巧3--防止程序挂掉的shell脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux小技巧3--防止程序挂掉的shell脚本

 

在一个实际项目中,很多时候需要保证程序或软件总是运行的,只有这样才能将相关损失降至最低;可是实际中由于软件自身质量和外部因素,很难保证程序持续运行的,此时就需要写一个程序或者脚本,用来监控目标程序,只要发现目标程序挂掉了该脚本就在此让其运行起来,从而保证软件的可靠性!

 

以下是本人写的一个shell脚本程序,其基本思想是用ps命令将所有进程信息写到文档中,然后用grep从文档中查找目标程序,若找到则不管,没找到则执行目标程序使其重启即可!

 

shell脚本如下:

#!/bin/sh#检测程序(/kjd/gateway)是否运行,未运行则启动该程序i=1
while [ i=1 ]
do
cd /kjd/doc
echo "I'm KJD!"
ps >/kjd/doc/process
var1= grep gateway /kjd/doc/process
#echo $var1
#declare -i a=$?
if [ $? -eq 0 ];
then 
echo "gateway is running!"
else 
echo "gateway is dead!"
/kjd/gateway
fi
rm /kjd/doc/process
sleep 5
done

最后,若需要让电脑开机就能启动改程序,只需将其添加到 /etc/rc.local (ubuntu)中即可,即将以下命令加到rc.local中:

/YourPath/code/KeepRunning.sh &

注意:
(1)需要添加在exit 0之前
(2)此处为ubuntu的系统的启动,其它系统需根据实际情况添加到对应的文件中!

(3)如果在终端执行以上脚本的时候脚本正常工作,但是退出终端时候发现脚本也被关闭了,此时需要使用nohup功能,该功能将忽略所有挂断(SIGHUP)信号,因此退出终端后脚本正常执行,使用方法如下: 

nohup /YourPath/code/KeepRunning.sh &

这篇关于Linux小技巧3--防止程序挂掉的shell脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017140

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的

Linux编译器--gcc/g++使用方式

《Linux编译器--gcc/g++使用方式》文章主要介绍了C/C++程序的编译过程,包括预编译、编译、汇编和链接四个阶段,并详细解释了每个阶段的作用和具体操作,同时,还介绍了调试和发布版本的概念... 目录一、预编译指令1.1预处理功能1.2指令1.3问题扩展二、编译(生成汇编)三、汇编(生成二进制机器语