]> git.pld-linux.org Git - packages/lxd.git/blob - lxd.init
9a13ce54f814a742a18be38c674b2ea254cc5edd
[packages/lxd.git] / lxd.init
1 #!/bin/sh
2 #
3 # Container hypervisor and a new user experience for LXC
4 #
5 # chkconfig:    345 20 80
6 #
7 # processname:  lxd
8 # pidfile: /var/run/lxd.pid
9 #
10
11 # Source function library
12 . /etc/rc.d/init.d/functions
13
14 # Get network config
15 . /etc/sysconfig/network
16
17 # Check that networking is up.
18 if is_yes "${NETWORKING}"; then
19         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
20                 msg_network_down "lxd"
21                 exit 1
22         fi
23 else
24         exit 0
25 fi
26
27 # Get service config - may override defaults
28 [ -f /etc/sysconfig/lxd ] && . /etc/sysconfig/lxd
29 OPTIONS="$OPTIONS --group lxd --logfile /var/log/lxd/lxd.log"
30
31 pidfile="/var/run/lxd.pid"
32
33 start() {
34         if status --pidfile $pidfile lxd lxd >/dev/null; then
35                 msg_already_running "lxd"
36                 RETVAL=1
37                 return
38         fi
39
40         if [ -n "$BRIDGE_DEV" ]; then
41                 if ! ip link show $BRIDGE_DEV 2>/dev/null | grep -q ",UP,"; then
42                         nls "lxd bridge %s is down, start lxdbr service first" "$BRIDGE_DEV"
43                         RETVAL=1
44                         return
45                 fi
46         fi
47                 
48         msg_starting "lxd"
49         daemon --fork --waitforname lxd /usr/sbin/lxd daemon $OPTIONS 
50         
51         # lxd does not write pidfile, so create one
52         show "Checking lxd daemon status"
53         busy
54         pid=""
55         ntry=0
56         while [ -z "$pid" -a $ntry -lt 5 ]; do
57                 [ -z "$pid" ] && sleep 1
58                 pid=$(lxc info 2>/dev/null | awk '/serverpid:/{print $2}')
59                 [ -n "$pid" ] && echo $pid > $pidfile
60                 ntry=$(($ntry+1))
61         done
62
63         if [ -n "$pid" ]; then
64                 touch /var/lock/subsys/lxd
65                 ok
66                 RETVAL=0
67         else
68                 fail
69                 RETVAL=1
70         fi
71 }
72
73 stop() {
74         if [ ! -f /var/lock/subsys/lxd ]; then
75                 msg_not_running "lxd"
76                 return
77         fi
78
79         # Stop daemons.
80         msg_stopping "lxd"
81         /usr/sbin/lxd shutdown 
82         busy
83         sleep 1
84         if status --pidfile $pidfile lxd lxd >/dev/null; then
85                 killproc --pidfile $pidfile lxd
86         else
87                 ok
88         fi
89         rm -f /var/lock/subsys/lxd
90 }
91
92 condrestart() {
93         if [ ! -f /var/lock/subsys/lxd ]; then
94                 msg_not_running "lxd"
95                 RETVAL=$1
96                 return
97         fi
98
99         stop
100         start
101 }
102
103 RETVAL=0
104 # See how we were called.
105 case "$1" in
106   start)
107         start
108         ;;
109   stop)
110         stop
111         ;;
112   restart)
113         stop
114         start
115         ;;
116   try-restart)
117         condrestart 0
118         ;;
119   force-reload)
120         condrestart 7
121         ;;
122   status)
123         status --pidfile $pidfile lxd lxd
124         RETVAL=$?
125         ;;
126   *)
127         msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
128         exit 3
129 esac
130
131 exit $RETVAL
This page took 0.039923 seconds and 2 git commands to generate.