当前位置: 首页 > news >正文

Linux 程序守护脚本

引言

程序是由代码形成的,代码是由人写的。只要是人,都会有疏忽的时候,导致写出的程序有bug,当然最严重的bug就是程序闪退。

本文旨在提供一个程序守护脚本,当监测到程序闪退后,立马将程序再起启动!

脚本

#!/bin/bashsleep 10        while true;
dovariable=`ps aux | grep helloworld | grep -v grep`    # helloworld 是程序名字if [ ! "$variable" ]; thencd /home/ygt/test/nohup ./helloworld &echo 'restart helloworld at time' >> restart_log.txtecho $(date +%F%n%T) >> restart_log.txtfisleep 10    # 每10秒监测一次
done

知识点

  • ps 是一个显示当前进程的快照的工具。
  • a 选项表示显示所有用户的进程。
  • u 选项表示显示用户/所有者信息。
  • x 选项表示不仅显示终端的进程,也显示没有控制终端的进程。
  • variable 是一个变量,执行ps aux | grep helloworld | grep -v grep命令,并将输出赋值给变量variable 。使用:$(variable)。

ps aux 的输出通常包含多列,如用户ID、进程ID、CPU使用率、内存使用率、启动时间、命令行等。

  • grep 是一个用于文本搜索的工具。
  • -v 选项表示反转搜索的结果,即显示不包含指定模式的行。

grep -v grep 用于排除由第一个grep命令产生的进程。因为搜索helloworld时,grep helloworld这个命令本身也会作为一个进程出现在ps aux的输出中,而如果不希望看到这个进程。所以,使用grep -v grep来排除它。

if [ ! "$variable" ]; then ... fi:这是一个if语句,用于检查$variable 变量是否为空(即helloworld进程是否没有运行)。如果为空(即没有找到该进程),则执行thenfi之间的代码块。

nohup ./helloworld &:在后台使用nohup命令启动helloworld进程,即使退出了shell终端,这个进程也会继续运行。

完!

相关文章:

Linux 程序守护脚本

引言 程序是由代码形成的,代码是由人写的。只要是人,都会有疏忽的时候,导致写出的程序有bug,当然最严重的bug就是程序闪退。 本文旨在提供一个程序守护脚本,当监测到程序闪退后,立马将程序再起启动&#…...

跨境电商|Facebook Marketplace怎么做?

2016 年,Facebook打造了同名平台 Facebook Marketplace。通过利用 Facebook 现有的庞大客户群,该平台取得了立竿见影的成功,每月访问量将超过 10 亿。对于个人卖家和小企业来说,Facebook Marketplace是一个不错的销货渠道&#xf…...

.gitignore 文件

一.什么是 .gitignore 文件 在任何当前工作的 Git 仓库中,每个文件都是这样的: 追踪的(tracked)- 这些是 Git 所知道的所有文件或目录。这些是新添加(用 git add 添加)和提交(用 git commit 提…...

qt中实现多语言功能

qt中实现多语言功能 原理: 其本质就是生成ts文件,然后使用Linguist软件手工翻译,再生成qm文件,最后在主程序的开始加载不同的qm文件,实现多语言。 步骤: 修改程序文件 在pro文件中加入说明 TRANSLATI…...

数据结构与算法之 leetcode 513. 找树左下角的值 (BFS) 广度优先

513. 找树左下角的值 /*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? null : right)* }*/ /*** param {T…...

mysql中的函数

MySQL提供了丰富的内置函数,涵盖了字符串操作、数字计算、日期和时间处理、条件判断、聚合计算等多个方面。这些函数可以帮助开发者在查询和数据处理时更高效地完成任务。下面是对MySQL中常见的函数分类及其主要函数的介绍: 字符串函数 CONCAT()&#x…...

Shell正则表达式与文本处理器

一、grep 1. 正则表达式 是一种匹配字符串的方法,通过一些特殊符号,快速实现查找,删除,替换某特定字符串。 选项: -a 不要忽略二进制数据。 -A 显示该行之后的内容。 -b 显示该行之前的内容。 -c 计算符合范本样…...

双指针法 ( 三数之和 )

题目 :给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复…...

感染恶意代码之后怎么办?

隔离设备 立即将感染设备与网络隔离,断开与互联网和其他设备的连接。这可以防止恶意代码进一步传播到其他设备,并减少对网络安全的威胁。 确认感染 确认设备是否真的感染了恶意代码。这可能需要使用安全软件进行全面扫描,以检测和识别任何已…...

【计算机网络】P3 计算机网络协议、接口、服务的概念、区别以及计算机网络提供的三种服务方式

目录 协议什么是协议协议是水平存活的协议的组成 接口服务服务是什么服务原语 协议与服务的区别计算机网络提供的服务的三种方式面向连接服务与无连接服务可靠服务与不可靠服务有应答服务与无应答服务 协议 什么是协议 协议,就是规则的集合。 在计算机网络中&…...

多角度剖析事务和事件的区别

事务和事件这两个概念在不同的领域有着不同的含义,尤其是在计算机科学、数据库管理和软件工程中。下面从多个角度来剖析事务和事件的区别: 计算机科学与数据库管理中的事务 事务(Transaction): 定义:在数据库管理中&#xff0c…...

模糊小波神经网络(MATLAB 2018)

模糊系统是一种基于知识或规则的控制系统,从属于智能控制,通过简化系统的复杂性,利用控制法来描述系统变量之间的关系,采用语言式的模糊变量来描述系统,不必对被控对象建立完整的数学模型。相比较传统控制策略&#xf…...

HTML布局

标准流: 标准流就是元素在页面中的默认排列方式,也就是元素在页面中的默认位置。 1.1 块元素----独占一行----从上到下排列 1.2 行内元素----不独占一行----从左到右排列,遇到边界换行 1.3 行内块元素----不独占一行…...

数据结构:双链表

数据结构&#xff1a;双链表 题目描述参考代码 题目描述 输入样例 10 R 7 D 1 L 3 IL 2 10 D 3 IL 2 7 L 8 R 9 IL 4 7 IR 2 2输出样例 8 7 7 3 2 9参考代码 #include <iostream>using namespace std;const int N 100010;int m; int idx, e[N], l[N], r[N];void init…...

Python3 元组、列表、字典、集合小结

前言 本文主要对Python中的元组、列表、字典、集合进行小结&#xff0c;主要内容包括知识点回顾、异同点、使用场景。 文章目录 前言一、知识点回顾1、列表&#xff08;List&#xff09;2、 元组&#xff08;Tuple&#xff09;3、 字典&#xff08;Dictionary&#xff09;4.、…...

2024会声会影破解免费序列号,激活全新体验!

会声会影2024序列号注册码是一款专业的视频编辑软件&#xff0c;它以其强大的功能和易用性受到了广大用户的喜爱。在这篇文章中&#xff0c;我将详细介绍会声会影2024序列号注册码的功能和特色&#xff0c;帮助大家更好地了解这款产品。 会声会影全版本绿色安装包获取链接&…...

机器学习18个核心算法模型

1. 线性回归&#xff08;Linear Regression&#xff09; 用于建立自变量&#xff08;特征&#xff09;和因变量&#xff08;目标&#xff09;之间的线性关系。 核心公式&#xff1a; 简单线性回归的公式为&#xff1a; , 其中 是预测值&#xff0c; 是截距&#xff0c; 是斜…...

平滑值(pinghua)

平滑值 题目描述 一个数组的“平滑值”定义为&#xff1a;相邻两数差的绝对值的最大值。 具体的&#xff0c;数组a的平滑值定义为 f ( a ) m a x i 1 n − 1 ∣ a i 1 − a i ∣ f(a)max_{i1}^{n-1}|a_{i1}-a_i| f(a)maxi1n−1​∣ai1​−ai​∣ 现在小红拿到了一个数组…...

使用matplotlib绘制折线条形复合图

使用matplotlib绘制折线条形复合图 介绍效果代码 介绍 在数据可视化中&#xff0c;复合图形是一种非常有用的工具&#xff0c;可以同时显示多种数据类型的关系。在本篇博客中&#xff0c;我们将探讨如何使用 matplotlib 库来绘制包含折线图和条形图的复合图。 效果 代码 imp…...

云计算中网络虚拟化的核心组件——NFV、NFVO、VIM与VNF

NFV NFV&#xff08;Network Functions Virtualization&#xff0c;网络功能虚拟化&#xff09;&#xff0c;是一种将传统电信网络中的网络节点设备功能从专用硬件中解耦并转换为软件实体的技术。通过运用虚拟化技术&#xff0c;NFV允许网络功能如路由器、防火墙、负载均衡器、…...

避坑指南:ThingsBoard部件开发中5个常见错误与优化方案(附跑马灯Demo代码)

ThingsBoard部件开发实战&#xff1a;5个高频踩坑点与性能优化技巧&#xff08;含跑马灯完整实现&#xff09; 最近在技术社区看到不少开发者讨论ThingsBoard部件开发中的"玄学问题"——明明按照文档操作却出现各种诡异现象。作为经历过完整产品开发周期的技术负责人…...

10个libxev实战技巧:从定时器到TCP服务器的完整实现

10个libxev实战技巧&#xff1a;从定时器到TCP服务器的完整实现 【免费下载链接】libxev libxev is a cross-platform, high-performance event loop that provides abstractions for non-blocking IO, timers, events, and more and works on Linux (io_uring or epoll), macO…...

跨平台开源工具OptiScaler:释放显卡潜能的性能优化指南

跨平台开源工具OptiScaler&#xff1a;释放显卡潜能的性能优化指南 【免费下载链接】OptiScaler DLSS replacement for AMD/Intel/Nvidia cards with multiple upscalers (XeSS/FSR2/DLSS) 项目地址: https://gitcode.com/GitHub_Trending/op/OptiScaler 你是否曾因显卡…...

Notepad2终极指南:轻量级文本编辑器的完整使用教程

Notepad2终极指南&#xff1a;轻量级文本编辑器的完整使用教程 【免费下载链接】notepad2 Notepad2-zufuliu is a light-weight Scintilla based text editor for Windows with syntax highlighting, code folding, auto-completion and API list for many programming languag…...

不用编译!快速修改Scratch-blocks积木字体的偷懒方法

零编译实战&#xff1a;Scratch-blocks字体调整极简方案 在Scratch 3.0的二次开发过程中&#xff0c;积木字体过小是开发者普遍遇到的痛点。官方移除了字体调节功能后&#xff0c;低分辨率设备上的中文显示尤为模糊。传统解决方案需要配置Python环境并重新编译scratch-blocks库…...

告别音乐平台干扰!铜钟音乐如何让你重拾纯净听歌体验?

告别音乐平台干扰&#xff01;铜钟音乐如何让你重拾纯净听歌体验&#xff1f; 【免费下载链接】tonzhon-music 铜钟 (Tonzhon.com): 免费听歌; 没有直播, 社交, 广告, 干扰; 简洁纯粹, 资源丰富, 体验独特&#xff01;(密码重置功能已回归) 项目地址: https://gitcode.com/Gi…...

OpenClaw性能优化:nanobot镜像响应速度提升50%

OpenClaw性能优化&#xff1a;nanobot镜像响应速度提升50% 1. 为什么需要优化nanobot镜像性能 第一次使用nanobot镜像时&#xff0c;我就被它的轻量级特性吸引——基于Qwen3-4B-Instruct-2507模型&#xff0c;却能跑在我的开发笔记本上。但实际使用中发现&#xff0c;当连续处…...

AMD GPU大模型部署与优化指南:基于ollama-for-amd的本地AI解决方案

AMD GPU大模型部署与优化指南&#xff1a;基于ollama-for-amd的本地AI解决方案 【免费下载链接】ollama-for-amd Get up and running with Llama 3, Mistral, Gemma, and other large language models.by adding more amd gpu support. 项目地址: https://gitcode.com/gh_mir…...

告别乱码!ESP32-S3+LVGL 9.2.2驱动ILI9488显示中文的保姆级教程(附完整代码)

ESP32-S3LVGL 9.2.2中文显示实战&#xff1a;从乱码到完美呈现的终极指南 当你在ESP32-S3上成功驱动了ILI9488显示屏&#xff0c;LVGL的基础例程也跑起来了&#xff0c;却发现中文显示全是方块或乱码时&#xff0c;这种挫败感我深有体会。中文显示问题一直是嵌入式GUI开发中的…...

5分钟部署Qwen3-VL-8B:MacBook也能跑的视觉语言模型,零基础上手

5分钟部署Qwen3-VL-8B&#xff1a;MacBook也能跑的视觉语言模型&#xff0c;零基础上手 1. 为什么选择Qwen3-VL-8B-Instruct-GGUF 1.1 轻量级多模态模型的突破 Qwen3-VL-8B-Instruct-GGUF是阿里通义实验室最新推出的视觉语言模型&#xff0c;它最大的特点就是小身材大能量。…...