如何使systemctl命令仅输出服务的active或inactive状态?
提取systemctl服务的active/inactive状态
可以通过以下几种方式精准获取目标状态:
方法1:优化现有管道命令
在原命令基础上增加awk提取第一个字段:
systemctl --no-pager status service_name | grep "Active" | cut -d ":" -f2 | awk '{print $1}'
awk '{print $1}'会直接截取输出行的第一个单词,也就是active或inactive。
方法2:用awk一步完成匹配提取
省去多层管道,直接定位目标行并提取字段:
systemctl --no-pager status service_name | awk '/Active:/ {print $2}'
/Active:/匹配包含该标识的行,$2对应行内的状态字段("Active:"为第一个字段,紧随其后的状态是第二个)。
方法3:使用systemctl内置命令(推荐)
systemctl自带专门查询服务活跃状态的命令,无需额外过滤,输出更直接:
systemctl is-active service_name
该命令会直接输出active、inactive或failed,完全满足需求且效率更高。
内容的提问来源于stack exchange,提问作者PTK
相关产品推荐
相关产品推荐

