File: 1482

package info (click to toggle)
pcp 7.1.0-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 252,748 kB
  • sloc: ansic: 1,483,656; sh: 182,366; xml: 160,462; cpp: 83,813; python: 24,980; perl: 18,327; yacc: 6,877; lex: 2,864; makefile: 2,738; awk: 165; fortran: 60; java: 52
file content (172 lines) | stat: -rwxr-xr-x 3,580 bytes parent folder | download
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#!/bin/sh
# PCP QA Test No. 1482
# System-V (non-systemctl) status checks
#
# Copyright (c) 2024 Ken McDonell.  All Rights Reserved.
#

if [ $# -eq 0 ]
then
    seq=`basename $0`
    echo "QA output created by $seq"
else
    # use $seq from caller, unless not set
    [ -n "$seq" ] || seq=`basename $0`
    echo "QA output created by `basename $0` $*"
fi

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check


[ "$PCPQA_SYSTEMD" = no ] || _notrun "using systemctl, not System-V init"

_cleanup()
{
    cd $here
    if [ ! -f $PCP_RUN_DIR/pmcd.pid ]
    then
	echo "Oops, pmcd not running as expected ... restarting"
	_service pmcd start
	_wait_for_pmcd
    fi
    if [ ! -f $PCP_RUN_DIR/pmlogger.pid ]
    then
	echo "Oops, pmlogger not running as expected ... restarting"
	_service pmlogger start
	_wait_for_pmlogger
    fi
    if $pmie_was_running
    then
	_service pmie start >>$seq_full 2>&1
	_wait_for_pmie
    elif [ -f $PCP_RUN_DIR/pmie.pid ]
    then
	_service pmie stop >>$seq_full 2>&1
	_wait_pmie_end
    fi
    if $pmproxy_was_running
    then
	_service pmproxy start >>$seq_full 2>&1
	_wait_for_pmproxy
    elif [ -f $PCP_RUN_DIR/pmproxy.pid ]
    then
	_service pmproxy stop >>$seq_full 2>&1
	_wait_pmproxy_end
    fi
    $sudo rm -rf $tmp $tmp.*
}

pmie_was_running=false
pmproxy_was_running=false

status=0	# success is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15

_filter()
{
    sed \
	-e "s@$tmp@TMP@g" \
    # end
}

# real QA test starts here
for svc in pmcd pmlogger pmie pmproxy
do
    echo | tee -a $seq_full
    echo "--- $svc stopping ---" | tee -a $seq_full
    case "$svc"
    in
	pmcd)
	    if ! _service $svc stop >>$seq_full 2>&1; then _exit 1; fi
	    _wait_pmcd_end || _exit 1
	    ;;

	pmlogger)
	    if [ -f $PCP_RUN_DIR/pmlogger.pid ]
	    then
		pid=`cat $PCP_RUN_DIR/pmlogger.pid`
		if ! _service $svc stop >>$seq_full 2>&1; then _exit 1; fi
		_wait_pmlogger_end $pid || _exit 1
	    fi
	    ;;

	pmie)
	    if [ -f $PCP_RUN_DIR/pmie.pid ]
	    then
		pmie_was_running=true
		if ! _service $svc stop >>$seq_full 2>&1; then _exit 1; fi
		_wait_pmie_end || _exit 1
	    fi
	    ;;

	pmproxy)
	    if [ -f $PCP_RUN_DIR/pmproxy.pid ]
	    then
		pmproxy_was_running=true
		if ! _service $svc stop >>$seq_full 2>&1; then _exit 1; fi
		_wait_pmproxy_end || _exit 1
	    fi
	    ;;
    esac

    echo "--- $svc stopped ---" | tee -a $seq_full
    if ! _service $svc status; then _exit 1; fi

    echo "--- $svc starting ---" | tee -a $seq_full
    case "$svc"
    in
	pmcd)
	    if ! _service $svc start >>$seq_full 2>&1; then _exit 1; fi
	    _wait_for_pmcd || _exit 1
		;;

	pmlogger)
	    if ! _service $svc start >>$seq_full 2>&1; then _exit 1; fi
	    _wait_for_pmlogger || _exit 1
	    ;;

	pmie)
	    if ! _service $svc start >>$seq_full 2>&1; then _exit 1; fi
	    _wait_for_pmie || _exit 1
	    ;;

	pmproxy)
	    if ! _service $svc start >>$seq_full 2>&1; then _exit 1; fi
	    _wait_for_pmproxy || _exit 1
	    ;;
    esac

    echo "--- $svc started ---" | tee -a $seq_full
    if ! _service $svc status; then _exit 1; fi

    case "$svc"
    in
	pmcd|pmlogger)
	    ;;

	pmie)
	    if $pmie_was_running
	    then
		if ! _service pmie start >>$seq_full 2>&1; then _exit 1; fi
		_wait_for_pmie || _exit 1
		pmie_was_running=false
	    fi
	    ;;

	pmproxy)
	    if $pmproxy_was_running
	    then
		if ! _service pmproxy start >>$seq_full 2>&1; then _exit 1; fi
		_wait_for_pmproxy || _exit 1
		pmproxy_was_running=false
	    fi
	    ;;
    esac

done

# success, all done
exit