在Linux及时监控某个应用是否运行,未运行,实行运行下令

[复制链接]
发表于 2026-1-15 23:42:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、shell脚本(每隔30秒检测一次)

脚本要注意的地方是:在Nodepad++编辑的时间要使用Unix(LF)格式,克制在Linux无法实行下令
  1. #!/bin/bash
  2. # RabbitMQ进程名称(可能需要根据你的安装进行调整)  
  3. RABBITMQ_PROCESS_NAME="beam.smp"  
  4. # RabbitMQ启动命令的路径  
  5. RABBITMQ_START_CMD="/path/to/rabbitmq-server"  
  6. # 日志日志文件路径  
  7. LOG_FILE="/path/to/rabbitmq-server.log"  
  8.   
  9. while true; do  
  10.     # 检查RabbitMQ进程是否存在  
  11.     if ! pgrep -x "$RABBITMQ_PROCESS_NAME" > /dev/null; then  
  12.         echo "$(date): RabbitMQ process not found, attempting to start..." >> $LOG_FILE  
  13.         # 尝试启动RabbitMQ服务器,并将输出重定向到日志日志文件  
  14.         nohup $RABBITMQ_START_CMD >> $LOG_FILE 2>&1 &  
  15.         echo "$(date): RabbitMQ started in background." >> $LOG_FILE  
  16.     else  
  17.         # (可选)记录RabbitMQ正在运行的日志日志  
  18.         echo "$(date): RabbitMQ process is running." >> $LOG_FILE  
  19.     fi  
  20.       
  21.     # 等待30秒  
  22.     sleep 30  
  23. done
复制代码
2、设置为可实行文件,添加权限
  1. chmod +x check_rabbitmq.sh
复制代码
3、实行下令
  1. nohup ./check_rabbitmq.sh &
复制代码
4、增长体系重启时就启动该脚本

1. 使用crontab的@reboot功能

crontab(cron table)是Linux下用于设置周期性被实行的使命的工具。你可以通过添加一个@reboot条目来指定在体系启动时实行某个脚本。

  •         打开当前用户的crontab文件:
  •         bash复制代码
  •        
    crontab -e

  •         添加一行来指定你的脚本在体系重启时实行。假设你的脚本位于/path/to/check_rabbitmq.sh,而且该脚本具有实行权限(通过chmod +x /path/to/check_rabbitmq.sh设置):
  •         bash复制代码(特别注意,在写完脚本后要enter,否则crond服务无法辨认,定时使命无法收效)
           
    @reboot /path/to/check_rabbitmq.sh

  •         生存并退出编辑器。cron服务会自动捕捉到这个更改,并在下次体系重启时实行你的脚本。
  •         重启 service crond restart
2. 使用systemd服务(保举对于较新的体系)

假如你的体系使用systemd(大多数当代Linux发行版都使用),你可以创建一个systemd服务单位来管理你的脚本。

  •         创建一个systemd服务文件。比方,在/etc/systemd/system/目次下创建一个名为check-rabbitmq.service的文件:
  •         bash复制代码
           
    sudo nano /etc/systemd/system/check-rabbitmq.service

  •         在文件中添加以下内容(根据你的脚本路径和需求调解):
  •         ini复制代码
           
    [Unit]
    Description=Check RabbitMQ Service
    After=network.target
    [Service]
    Type=simple
    ExecStart=/home/user/check_rabbitmq.sh
    [Install]
    WantedBy=multi-user.target

  •         启用并启动服务:
  •         bash复制代码
  •        
    sudo systemctl enable check-rabbitmq.service
    sudo systemctl start check-rabbitmq.service
    如许,每次体系启动时,systemd都会自动启动你的check_rabbitmq.sh脚本。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表