shell判断程序是否运行,守护进程

2023-11-15

一、需求

        服务部署在linux上,要求服务器上的服务可以一直保持正常运行

二、问题

        在linux上部署的微服务,不知道什么原因过一段时间就自己停掉了,无法启动。

三、解决办法

        添加angle守护进程,通过定时执行脚本来判断程序是否运行,若不是的话则自动启动。

四、实现步骤

1、编写脚本。

        在linux中,通过定时执行脚本来判断程序是否执行。(一定要注意编码格式,不要用文本编辑器直接编辑,否则运行会报错)

注意ps -ef 和ps -C两种方法的区别,ps -C可以准确的查询出这个服务名称的条数,而ps -ef 只能匹配有这个名称的进程 

条件 案例
-eq n1 -eq n2,检查n1是否等于n2
-le n1 -le n2,检查n1是否小于等于n2
-ge n1 -ge n2,检查n1是否大于等于n2
-lt n1 -lt n2,检查n1是否小于n2
-gt n1 -gt n2,检查n1是否大于n2
-ne n1 -ne n2,检查n1是否不等于n

数字的判断语法,两边是有空格的,不然就会语报错

#!/bin/bash
#ps -ef |grep zookeeper 这个就是看zookeeper的启动情况
#grep -v "grep" 是为了去掉查询 grep的那一条
#wc -l 是计数的

COUNT=$(ps -ef |grep zookeeper |grep -v "grep" |wc -l)
echo $COUNT
if [ $COUNT -eq 0 ]; then
        echo NOT RUN
else
        echo is RUN
fi

echo "end ...."

运行结果:

2、配置linux系统定时任务

配置系统定时任务命令
crontab -e

写入需要执行的脚本,每五分钟运行一次(cron表达式)
*/5 * * * * /home/restart.sh

重启系统定时任务(才会生效)
service crond restart
或者
systemctl restart crond.service

不保存正常退出::q!

保存退出:“shitf+z”,连续按两下即可退出

linux编辑保存文件可以看我的博客: xshell修改编辑文件并保存_xshell保存命令_凌抆莂的博客-CSDN博客

3、检测是否执行成功

        使用kill命令杀死服务,过几分钟后观察服务是否自动启动,可以正常启动则表示配置成功,不能正常启动的话就是有问题的。

参考:Shell之判断程序是否运行-yellowcong_shell判断进程是否运行_狂飙的yellowcong的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell判断程序是否运行,守护进程 的相关文章

  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • Linux:如何从特定端口发送TCP数据包?

    如何打开原始套接字以从特定 TCP 端口发送 我希望所有连接始终来自临时端口以下的一系列端口 如果您正在使用raw套接字 然后只需在数据包标头中填写正确的 TCP 源端口即可 相反 如果您使用 TCP 套接字接口 socket connec
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad

随机推荐

  • K8s中的Deployment

    Deployment是kubernetes在1 2版本中引入的新概念 用于更好的解决Pod的编排问题 为此 Deployment在内部使用了ReplicaSet来实现目的 我们可以把Deployment理解为ReplicaSet的一次升 级
  • 【精华】批量修改文件夹中的文件名

    转载自 批量修改文件名 原文地址如下 http t csdn cn tGsfz 1 在所需批量修改文件名的文件夹内新建一个改 txt文件 并在新建的txt文件中输入dir gt 1 txt 2 修改新建的改 txt文件的后缀名为 bat 3
  • 虚拟机Ubuntu20.04一招解决无法连接网络问题

    虚拟机Ubuntu20 04一招解决无法连接网络问题 网上试了很多方法都没解决 最后一招解决 简单的网上一堆教程自己找下 此教程适合解决不了的同学 第一步 先关闭虚拟机的ubuntu系统 然后虚拟机 gt 设置 gt 网络适配器 选择NAT
  • 泛型是实体类的集合,根据某一字段排序

    举例 List
  • IDEA将web项目打包成war包

    目录 通用的方式打包 maven方式打包 eclipse版本 https blog csdn net weixin 45859844 article details 119965820 如果要到服务器部署项目 可能需要将项目打成war包 放
  • 程序员必备的思维能力:结构化思维

    在日常工作中 我们时常会碰到这样的情况 有的人讲一件事情的时候逻辑非常混乱 说了很多事情的罗列 却说不到重点 有的人写代码 本身的业务逻辑并没有多复杂 但呈现出的代码却像一堆线团 混乱不堪 无法理解 这些都是典型的缺少结构化思维的表现 导致
  • 挖矿病毒解决

    1 进程 cpu 100 watchdog 2 解决 tmp netstat 矿池 鱼池 sup 进程 文件主程序 crontab l 计划任务 分析脚本 3 如何进来的 web日志 log4j 命令 漏洞 docker yam fastj
  • Mathematica 有关向量与矩阵的函数

    下面是Mathematica中常用的关于向量和矩阵的函数
  • MySQL添加用户、删除用户、授权及撤销权限

    一 创建用户 mysql gt insert into mysql user Host User Password values localhost test password 1234 这样就创建了一个名为 test 密码为 1234 的
  • JAVA并发-Monitor简介

    什么是Monitor 1 Monitor是一种用来实现同步的工具 2 与每个java对象相关联 即每个java对象都有一个Monitor与之对应 3 Monitor是实现Sychronized 内置锁 的基础 Monitor的基本结构是什么
  • 十问十答

    凯云科技 今年六月 我们迎来了异常炎热的夏季 炎炎烈日也抵挡不了我们前进的步伐 上海 北京都留下了凯云的身影 两场展会 一场论坛 我们也得到了来自客户的高度认可 对此 小编特意整理了关于核心软件ETest的十问十答 为还心存疑惑的小伙伴们答
  • idea配置两个git源地址步骤并合并代码

    最近做项目迁移 把原来的gitlab上的代码迁移到了另一个gitlab仓库汇总 更换了git源地址 这样需要把原来项目的代码合并到新的gitlab仓库中 添加git源地址
  • Oracle数据库表的约束

    Oracle数据库约束类型主要有以下几个 primary key 主键约束 foreign key 外键约束 check 检查约束 unique 唯一约束 not null 非空约束 alter table table name add c
  • TypeScript实现八大排序与搜索算法

    前言 我们在页面上渲染数据时 通常会根据特定规则来对数据进行一个排序 然后再将其渲染到页面展示给用户 那么对数据进行排序有很多种方式 哪一种效率高 哪一种稳定性好 那一种占用内存小 本文将详解经典的八大排序算法以及三种搜索算法 并用Type
  • 【排错日记】PageHelper插件的默认分页参数

    现象 没有写如下代码 执行的结果却被分页显示了 PageHelper startPage listParam getPageNum listParam getPageSize 源码分析 调用方法判断是否需要进行分页 如果不需要 直接返回结果
  • k8s 启动探针生存探针&就绪探针

    目录 k8s 启动探针 存活探针 就绪探针 存活 就绪探针的区别 探针处理程序和结果 启动探针 存活探针 livenessProbe exec livenessProbe httpget livenessProbe tcp 就绪探针 k8s
  • 【总结】NPU/CPU/GPU 傻傻分不清?

    本文主要解答以下问题 NPU是新玩意儿吗 芯片里面的CPU GPU NPU究竟是什么 它们是怎么工作的 引言 中国首款嵌入式NPU诞生 6月20日 中星微 数字多媒体芯片技术 国家重点实验室在京宣布 中国首款嵌入式NPU 神经网络处理器 芯
  • AWTRIX像素屏时钟搭建

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 AWTRIX像素屏时钟搭建 前言 一 AWTRIX是什么 二 AWTRIX像素屏时钟搭建步骤 1 材料准备 2 ESP8266固件刷写 3 接线方式 4 手机端配网 4 服务
  • 2022中山大学计算机技术专硕考研初试、复试经验帖

    2022年中山大学计算机技术专硕考研初试 复试经验帖 个人简介 推荐几个我自己感觉对考研非常有帮助的小助手吧 可以帮助节省时间 考研时间规划总览 初试篇 数学 英语 政治 408 复试篇 如果觉得有帮助的话可以点个收藏后续会修改和增加内容
  • shell判断程序是否运行,守护进程

    一 需求 服务部署在linux上 要求服务器上的服务可以一直保持正常运行 二 问题 在linux上部署的微服务 不知道什么原因过一段时间就自己停掉了 无法启动 三 解决办法 添加angle守护进程 通过定时执行脚本来判断程序是否运行 若不是