summaryrefslogtreecommitdiff
path: root/sysutils/checkrestart/files/checkrestart.in
blob: a7fd51870eca7f4a782a393bbefed824f4e80b21 (plain)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/sh
# $FreeBSD$

if [ -r /etc/defaults/periodic.conf ]; then
    . /etc/defaults/periodic.conf
    source_periodic_confs
fi

: "${security_checkrestart_enable:=NO}"
: "${security_checkrestart_period:=DAILY}"
: "${security_checkrestart_users:=}"           # User names or IDs to check
: "${security_checkrestart_jails:=}"           # Jail names or IDs to check
: "${security_checkrestart_procs:=}"           # Process names or IDs to check

checkrestartcmd=%%PREFIX%%/bin/checkrestart
hflag=""
rc=0

export COLUMNS=80

checkrestart() {
    local result
    result="$(${checkrestartcmd} ${hflag} "$@" -- ${security_checkrestart_procs} 2>&1)"
    if [ "$result" ]; then
        echo "${result}"
        rc=3
    fi
    hflag="-H"
}

checkrestart_each_user() {
    if [ -n "${security_checkrestart_users}" ]; then
        for user in ${security_checkrestart_users}; do
            checkrestart -u "${user}" "$@"
        done
    else
        checkrestart "$@"
    fi
}

checkrestart_start() {
    if [ -n "${security_checkrestart_jails}" ]; then
        for jail in ${security_checkrestart_jails}; do
            checkrestart_each_user -j "${jail}"
        done
    else
        checkrestart_each_user
    fi
}

if check_yesno_period security_checkrestart_enable
then
    echo
    echo 'Checking for stale processes:'
    checkrestart_start
fi

exit $rc