forked from dmwm/deployment
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmanage
executable file
·138 lines (120 loc) · 3.07 KB
/
manage
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
#!/bin/sh
##H Usage: manage ACTION [SECURITY-STRING]
##H
##H Available actions:
##H help show this help
##H version get current version of the service
##H status show current service's status
##H sysboot start server from crond if not running
##H restart (re)start the service
##H start (re)start the service
##H stop stop the service
##H
##H For more details please refer to operations page:
##H https://twiki.cern.ch/twiki/bin/view/CMS/WebtolsBase
if [ $(id -un) = cmsweb ]; then
echo "ERROR: please use another account" 1>&2
exit 1
fi
echo_e=-e bsdstart=bsdstart
case $(uname) in Darwin )
md5sum() { md5 -r ${1+"$@"}; }
echo_e= bsdstart=start
;;
esac
ME=$(basename $(dirname $0))
TOP=$(cd $(dirname $0)/../../.. && pwd)
ROOT=$(cd $(dirname $0)/../.. && pwd)
CFGDIR=$(dirname $0)
LOGDIR=$TOP/logs/$ME
STATEDIR=$TOP/state/$ME
COLOR_OK="\\033[0;32m"
COLOR_WARN="\\033[0;31m"
COLOR_NORMAL="\\033[0;39m"
. $ROOT/apps/webtools-base/etc/profile.d/init.sh
export SEC_MOD_INI=$ROOT/auth/sitedb/security.ini
export YUI_ROOT
case $(hostname -s | tr '[:upper:]' '[:lower:]') in
vocms34 | vocms136 | vocms16[13] | vocms034 | vocms0136 | vocms016[13] )
NODE=https://cmsweb.cern.ch ;;
vocms13[23] | vocms013[23] )
NODE=https://cmsweb-testbed.cern.ch ;;
vocms127 | vocms0127 )
NODE=https://cmsweb-dev.cern.ch ;;
* )
NODE=https://$(hostname -f) ;;
esac
# Start service conditionally on crond restart.
sysboot()
{
if [ $(pgrep -u $(id -u) -f "cmsWeb.*[/]base" | wc -l) = 0 ]; then
start
fi
}
# Start the service.
start()
{
cd $STATEDIR
echo "starting $ME"
cmsWeb --pid-file $STATEDIR/pid.txt --base-url $NODE/base -p 7999 \
--default-page /WSServer/ --log-level 100 </dev/null 2>&1 |
rotatelogs $LOGDIR/base-%Y%m%d.log 86400 >/dev/null 2>&1 &
}
# Stop the service.
stop()
{
echo "stopping $ME"
for PID in $(pgrep -u $(id -u) -f "cmsWeb.*[/]base" | sort -rn); do
PSLINE=$(ps -o pid=,$bsdstart=,args= $PID |
perl -n -e 'print join(" ", (split)[0..6])')
echo "Stopping $PID ($PSLINE):"
kill -9 $PID
done
}
# Check if the server is running.
status()
{
pid=$(pgrep -u $(id -u) -f "cmsWeb.*[/]base" | sort -n)
if [ X"$pid" = X ]; then
echo $echo_e "$ME is ${COLOR_WARN}NOT RUNNING${COLOR_NORMAL}."
else
echo $echo_e "$ME is ${COLOR_OK}RUNNING${COLOR_NORMAL}, PID" $pid
fi
}
# Verify the security string.
check()
{
CHECK=$(echo "$1" | md5sum | awk '{print $1}')
if [ $CHECK != 94e261a5a70785552d34a65068819993 ]; then
echo "$0: cannot complete operation, please check documentation." 1>&2
exit 2;
fi
}
# Main routine, perform action requested on command line.
case ${1:-status} in
sysboot )
sysboot
;;
start | restart )
check "$2"
stop
start
;;
status )
status
;;
stop )
check "$2"
stop
;;
help )
perl -ne '/^##H/ && do { s/^##H ?//; print }' < $0
;;
version )
echo "$WEBTOOLS_BASE_VERSION"
;;
* )
echo "$0: unknown action '$1', please try '$0 help' or documentation." 1>&2
exit 1
;;
esac