-
-
Notifications
You must be signed in to change notification settings - Fork 653
/
cobblerd
executable file
·155 lines (139 loc) · 3.8 KB
/
cobblerd
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
#!/bin/sh
#
# cobblerd Cobbler helper daemon
###################################
# LSB header
### BEGIN INIT INFO
# Provides: cobblerd
# Required-Start: $network $xinetd $httpd
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: daemon for libvirt virtualization API
# Description: This is a daemon that a provides remote cobbler API
# and status tracking
### END INIT INFO
# chkconfig header
# chkconfig: 345 99 99
# description: This is a daemon that provides a remote cobbler API
# and status tracking
#
# processname: @@install_scripts@@/cobblerd
# Sanity checks.
[ -x @@install_scripts@@/cobblerd ] || (
echo "Error, could not find executable: @@install_scripts@@/cobblerd"
exit 1
)
DEBIAN_VERSION=/etc/debian_version
SUSE_RELEASE=/etc/SuSE-release
# Source function library.
if [ -f $DEBIAN_VERSION ]; then
. /lib/lsb/init-functions
elif [ -f $SUSE_RELEASE -a -r /etc/rc.status ]; then
. /etc/rc.status
else
. /etc/rc.d/init.d/functions
fi
if [ -f @@defaultpath@@/cobblerd ]; then
. @@defaultpath@@/cobblerd
fi
if [ "x${CONFIG_ARGS}" = "x" ]; then
CONFIG_ARGS=" "
fi
SERVICE=cobblerd
PROCESS=cobblerd
if [ -f $DEBIAN_VERSION -o -f $SUSE_RELEASE ]; then
LOCKFILE=/var/lock/$SERVICE
else
LOCKFILE=/var/lock/subsys/$SERVICE
fi
WSGI=@@install_data@@/share/cobbler/web/cobbler.wsgi
RETVAL=0
start() {
echo -n "Starting cobbler daemon: "
if [ -f $SUSE_RELEASE ]; then
startproc -p /var/run/$SERVICE.pid @@install_scripts@@/cobblerd $CONFIG_ARGS
rc_status -v
elif [ -e $DEBIAN_VERSION ]; then
pgrep -f "@@python_executable@@ @@install_scripts@@/cobblerd" > /dev/null 2>&1
if [ "$?" -eq 0 ]; then
echo -n "already started"
RETVAL=1
elif @@python_executable@@ @@install_scripts@@/cobblerd; then
echo -n "OK"
RETVAL=0
fi
else
daemon --check $SERVICE $PROCESS --daemonize $CONFIG_ARGS
fi
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCKFILE
[ -f $WSGI ] && touch $WSGI
return $RETVAL
}
stop() {
echo -n "Stopping cobbler daemon: "
if [ -f $SUSE_RELEASE ]; then
killproc -TERM @@install_scripts@@/cobblerd
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
# Added this since Debian's start-stop-daemon doesn't support spawned processes, will remove
# when cobblerd supports stopping or PID files.
if pkill -f "@@python_executable@@ @@install_scripts@@/cobblerd" > /dev/null 2>&1 ; then
echo -n "OK"
RETVAL=0
else
echo -n "Daemon is not started"
RETVAL=1
fi
else
killproc $PROCESS
fi
RETVAL=$?
echo
if [ $RETVAL -eq 0 ]; then
rm -f $LOCKFILE
rm -f /var/run/$SERVICE.pid
fi
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start|stop|restart)
$1
;;
status)
if [ -f $SUSE_RELEASE ]; then
echo -n "Checking for service cobblerd "
checkproc @@install_scripts@@/cobblerd
rc_status -v
elif [ -f $DEBIAN_VERSION ]; then
pgrep -f "@@python_executable@@ @@install_scripts@@/cobblerd" > /dev/null 2>&1
if [ "$?" -eq 0 ]; then
RETVAL=0
echo "cobblerd is running."
else
RETVAL=1
echo "cobblerd is stopped."
fi
else
status $PROCESS
RETVAL=$?
fi
;;
condrestart)
[ -f $LOCKFILE ] && restart || :
;;
reload)
echo "can't reload configuration, you have to restart it"
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|condrestart|reload}"
exit 1
;;
esac
exit $RETVAL