要创建一个守护进程,监控 NGINX 服务并在其未运行时自动启动 NGINX,你可以编写一个简单的 shell 脚本,并将其设置为定时任务(使用 cron)。

步骤 1:编写监控脚本

  1. 创建一个新的脚本文件:

    bash
    nano /usr/local/bin/nginx_monitor.sh
  2. 在脚本中添加以下内容:

    bash
    #!/bin/bash

    # 检查 NGINX 是否正在运行
    if ! pgrep -x "nginx" > /dev/null
    then
    echo "NGINX is not running, starting it..."
    # 启动 NGINX
    sudo systemctl start nginx
    else
    echo "NGINX is running."
    fi

  3. 保存并关闭编辑器。

  4. 使脚本可执行:

    bash
    sudo chmod +x /usr/local/bin/nginx_monitor.sh

步骤 2:设置定时任务

  1. 打开当前用户的 crontab

    bash
    crontab -e
  2. 添加以下行来设置定时任务,例如每分钟检查一次 NGINX:

    cron
    * * * * * /usr/local/bin/nginx_monitor.sh
  3. 保存并退出编辑器。

脚本解释:

  • pgrep -x "nginx":查找所有包含 “nginx” 的进程。如果 NGINX 正在运行,pgrep 将返回其进程 ID。
  • > /dev/null:将 pgrep 的输出重定向到 /dev/null,这样就不会在日志中显示进程 ID。
  • sudo systemctl start nginx:如果 NGINX 没有运行,使用 systemctl 启动 NGINX。

注意:

  • 确保 /usr/local/bin/nginx_monitor.sh 脚本的路径正确,并且脚本具有执行权限。
  • 根据你的系统配置,可能需要调整 sudo 权限或使用其他方式来启动 NGINX。
  • 定时任务的频率可以根据需要调整,例如每 5 分钟或每 10 分钟检查一次。

通过这种方式,你可以确保 NGINX 在未运行时自动启动,从而保持你的服务始终可用。