Linux监听某个进程,自动重启

ops/2024/10/25 19:35:07/

文章目录

  • 前言
  • 一、使用 bash 脚本编写监控程序
  • 二、使用 systemd
  • 总结


前言

在 Linux 下监听某个进程,当进程异常退出后自动重启,可以使用bash脚本编写监控程序,也可以使用系统工具如 systemd 或 supervisor。


一、使用 bash 脚本编写监控程序

  1. 使用 bash 脚本编写监控程序创建一个 check_process.sh 文件,内容如下:
#!/bin/bash
while true
do#尝试获取进程的 PID,这里通过进程的名字来获取,如 nginxPID=`ps -ef |grep -v grep | grep nginx |awk '{print $2}'`#判断进程的 PID 是否为空,为空则未找到此进程,需要启动if [ ! "$PID" ]; thenecho "进程不存在,正在启动..."#这里可以可以修改成你的启动应用命令/usr/sbin/nginxecho "进程启动成功!"fi#每隔一分钟检测一次进程是否存在sleep 60
done

授权文件可执行:

chmod 777 check_process.sh

运行此 check_process.sh 脚本,并将其设置为后台运行:

nohup check_process.sh &

二、使用 systemd

2.在 /lib/systemd/system/ 下创建名为 myprocess.service 的文件。更改以下示例,根据您的需求进行调整:

[Unit]
Description=My Custom Service
After=network.target[Service]
ExecStart=/usr/bin/myprocess
Restart=always
User=root
Group=root
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/home/myuser[Install]
WantedBy=multi-user.target

使用以下命令启用并启动服务:

sudo systemctl enable myprocess.service
sudo systemctl start myprocess.service

总结

注意: 以上两种方式都需要根据你的环境进行适当调整,比如进程名、启动命令位置等。


http://www.ppmy.cn/ops/41556.html

相关文章

训练集、测试集与验证集:机器学习模型评估的基石

在机器学习中,为了评估模型的性能,我们通常会将数据集划分为训练集(Training Set)、验证集(Validation Set)和测试集(Test Set)。这种划分有助于我们更好地理解模型在不同数据上的表…

C++复习 -- 继承

继承基本概念 继承是面向对象编程(OOP)中的一个核心概念,特别是在C中。它允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和方法。 继承的主要目的是实现代码重用&#xff0…

thinkphp8扩展think-swoole4.0-事件监听代码

首先服务端配置监听 swoole.php <?phpreturn [http > [enable > true,host > 0.0.0.0,port > 8000,worker_num > swoole_cpu_num(),options > [],],websocket > [enable > true,handler > \think\swo…

Mac电脑安装打开APP显示问题已损坏 问题解决

当MAC电脑安装完软件打开时&#xff0c;显示文件已损坏&#xff0c;无法打开。搜了很多教程终于找到解决方案&#xff0c;记录下方便以后再用。 我的mac电脑是intel芯片的&#xff0c;如果你遇到这个问题&#xff0c;可以参考我的这个方案。 1.首先当打开软件后出现 “xx软件已…

AIGC、LLM 加持下的地图特征笔记内容生产系统架构设计

文章目录 背景构建自动化内容生产平台系统架构设计架构详细设计流程介绍笔记来源笔记抓取干预 笔记 AIGC 赋能笔记 Rule 改写笔记特征库构建 附录Bash Cron 定时任务Golang 与 Pyhon AIGC 实践 小结 背景 在大模型的浪潮下&#xff0c;ChatGPT、Sora、Gemini、文言一心 等新技…

使用poi生成word文件时,zip相关的报错

apache poi-检测到Zip Bomb解决方案_zip bomb detected! the file would exceed the max. -CSDN博客

CentOS Linux 7 一键安装和卸载docker docker-compose

install_docker.sh #!/bin/bash # 安装 Dockerecho "下载关于Docker的依赖环境" echo "安装yum-utils包" sudo yum -y install yum-utils device-mapper-persistent-data lvm2 echo "设置存储库" sudo yum-config-manager --add-repo http://mi…

测试docker GPU性能损失

NVIDIA 3090 利用HSOpticalFlow代码测试docker GPU性能损失 docker介绍图如下&#xff1a; 形象生动展示了他们之间的关系 今天要测试docker容器运行HSOpticalFlow算法的性能损失&#xff0c;包括CPU和GPU 上一篇博客 http://t.csdnimg.cn/YW5kE 我已经介绍了使用docker和nvid…