Shell脚本监控进程异常终止并重启

news/2024/10/18 9:25:05/

首先介绍一下我现在的需求,我服务器上挂了一个用python编写的kook机器人,但有时候机器人程序会异常终止,不知道什么原因,因此需要监控机器人程序是否有在运行,如果没有就重启机器人程序。

可以写一个Shell脚本,来实现这个需求。
shell的入门教程可以看一眼这个

具体步骤如下:

  1. 首先新建一个helloworld.sh文件
  2. 给helloworld.sh执行权限:chmod +x helloworld.sh,linux中新建的文件默认没有执行权限
  3. 在helloworld.sh里写自己想实现的功能,这里我实现的功能是查询main.py进程是否在运行,每2秒就查询一次,如果不在运行就重启。
#!/bin/bashwhile true; domonitor=$(ps aux | grep main.py | grep zzy | grep -v grep | wc -l)if (( $monitor == 0 )); thenecho "$monitor DEAD, RESTARTING...... $(date)"# 添加你的重启命令/home/zzy/anaconda3/bin/python ./squad-kot/main.py &elseecho "$monitor RUNNING $(date)"fisleep 2
done

注意重启命令结尾要加一个&,表示让重启进程在后台运行,不影响当前终端,不加的话bash进程会停止输出到屏幕上,而让重启进程的输出显示在屏幕上。

  1. 运行helloworld.sh文件:./helloworld.sh

显示效果:
手动kill -9机器人程序后,效果如下图所示,可以看到机器人程序因异常终止后,可以自动重启。
在这里插入图片描述

参考文献
shell脚本监控程序异常退出并自动重启


http://www.ppmy.cn/news/1341701.html

相关文章

论文阅读-MapReduce

论文名称:MapReduce: Simplified Data Processing on Large Clusters 翻译的效果不是很好,有空再看一遍,参照一下别人翻译的。 MapReduce:Simplified Data Processing on Large Clusters 中文翻译版(转) - 阿洒 - 博客园 (cnblogs.com) 概…

css新手教程

css新手教程 课程:14、盒子模型及边框使用_哔哩哔哩_bilibili 一.什么是CSS 1.什么是CSS Cascading Style Sheet 层叠样式表。 CSS:表现(美化网页) 字体,颜色,边距,高度,宽度&am…

PyTorch的nn.Module类的详细介绍

在PyTorch中,nn.Module 类是构建神经网络模型的基础类,所有自定义的层、模块或整个神经网络架构都需要继承自这个类。nn.Module 类提供了一系列属性和方法用于管理网络的结构和训练过程中的计算。 1. PyTorch中nn.Module基类的定义 在PyTorch中&#xff…

在flutter中集成Excel导入和导出

flutter中集成Excel导入和导出功能 1、需要的依赖 在pubspec.yaml #excel导出syncfusion_flutter_xlsio: ^24.1.45open_file: ^3.0.1#导入excelflutter_excel: ^1.0.1#选择文件的依赖file_picker: ^6.1.1(1)依赖说明 在测试时,我们在使用导…

Pandas - Groupby对多个值分组并绘图示例

在本文中,我们将学习如何按多个值分组并一次性绘制结果。在这里,我们从seaborn库中获取一个数据集的“exercise.csv”文件,然后形成不同的groupby数据并可视化结果。 对于此程序,所需步骤如下: 导入相关库创建并导入…

ES(ElasticSearch)技术栈简介

ElasticSearch简介 Elaticsearch,简称为es, es是一个基于apache开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Ja…

leetcode121. 买卖股票的最佳时机

Problem: 121. 买卖股票的最佳时机 文章目录 题目思路1思路2 题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计…

RT-Thread线程管理(使用篇)

layout: post title: “RT-Thread线程管理” date: 2024-1-26 15:39:08 0800 tags: RT-Thread 线程管理(使用篇) 之后会做源码分析 线程是任务的载体,是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文,具体来说就是各个变量和数据&#xff0c…