# 2021-01-06 #「systemd」- 从 systemctl status 中提取个别字段

问题描述

在 Shell Script 中,我们需要判断服务的运行状态,以作出相应的逻辑处理。

该笔记将记录:如何获取 systemd 管理的某个服务的运行状态。

解决方法

我们以 nginx 服务为例,判断服务的运行状态

# systemctl show nginx.service --property ActiveState 
ActiveState=inactive

# systemctl start nginx.service 

# systemctl show nginx.service --property ActiveState 
ActiveState=active

如果希望在 Shell Script 中使用:

eval $(systemctl show nginx.service --property ActiveState)
if [ "$ActiveState" = "active" ]; then
    echo "Nginx is running."
else
    echo "Nginx is stopped."
fi

参考文献

K4NZ/从 systemctl status 中提取个别字段
python - how to get individual values from the output of systemctl status - Stack Overflow
shell - Run a string as a command within a Bash script - Stack Overflow


posted @ 2021-01-06 13:19  研究林纳斯写的  阅读(100)  评论(0编辑  收藏  举报