📅  最后修改于: 2023-12-03 15:10:55.061000             🧑  作者: Mango
在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脚本的样例,你可以根据自己的需要稍作修改,适用于其他的服务检查。