1 contributor
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function _systemctl () {
test -n "$1" || return
eval $(systemctl show $1 | egrep '^(ExecMainStatus|Result|ActiveState|SubState|Type)=')
if test -n "$Type"; then
test $ExecMainStatus -eq 0 \
&& test $Result = 'success' \
&& test $ActiveState = 'active' \
&& [[ ( $Type =~ ^(simple|forking|notify)$ && $SubState = 'running' ) || ( $Type = 'oneshot' && $SubState = 'exited' ) ]] \
|| echo "état du service anormal"
else
echo "service $1 inexistant"
fi
}
function sys_state () {
local failed_units=
eval $(systemctl show | egrep '^(SystemState|NFailedUnits)=')
if test $SystemState != "running" -o $NFailedUnits -ne 0; then
msg="$SystemState mode ($NFailedUnits units failed):%0a"
msg+=$(systemctl --failed --no-legend | awk '
{
split($1, units, ".")
failed[units[2]][units[1]]=1
numfailed[units[2]]++
}
END {
for (ut in failed) {
printf("%s%%0a", ut)
for (un in failed[ut]) {
last = --numfailed[ut] == 0 ? 1 : 0
printf("%s %s%s", last ? "└─" : "├─", un, last ? "" : "%0a")
}
}
}')
fi
}