📌  相关文章
📜  检查服务是否正在运行服务器 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:10:55.061000             🧑  作者: Mango

检查服务是否正在运行服务器 - Shell-Bash

在Linux上,一些服务是在开机自启时启动的,这些服务是我们重要的系统组件,如果服务突然停止了,会给我们带来不必要的麻烦。

我们可以编写Shell脚本,检查服务是否正在运行。这种脚本可以运行在计划任务中,每隔一段时间自动检查服务是否在运行,如果停止,则自动启动。

以下是一个Shell脚本样例:

#!/bin/bash

SERVICE=nginx

if (( $(ps -ef | grep -v grep | grep $SERVICE | wc -l) > 0 ))
then
    echo "$SERVICE is running"
else
    echo "$SERVICE is not running"
    service $SERVICE start
fi

该脚本会检查NGINX服务是否在运行,如果NGINX服务正在运行,脚本将输出“nginx is running”。如果NGINX服务没有运行,脚本将输出“nginx is not running”,并自动启动NGINX服务。

在上面的脚本中,SERVICE变量设置为要检查的服务的名称。在 if语句块中,使用ps -ef命令查找进程列表,使用grep过滤出$SERVICE所在的行,使用wc -l统计结果行数。

如果结果行数大于0,则意味着服务正在运行,否则服务未在运行,即需要启动服务。

else语句块中,使用service start $SERVICE命令来启动服务。

你可以将该脚本保存为任意名称,例如check_service.sh,并添加执行权限。使用以下命令执行脚本:

chmod +x check_service.sh
./check_service.sh

以上是一个检查服务是否正在运行服务器Shell脚本的样例,你可以根据自己的需要稍作修改,适用于其他的服务检查。