Magellan Linux

Annotation of /trunk/xen-tools/xendomains.rc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 615 - (hide annotations) (download)
Sat May 24 10:32:18 2008 UTC (15 years, 11 months ago) by niro
File size: 2709 byte(s)
-initscript files for xen-tools packages

1 niro 615 #!/bin/bash
2     # $Header: /root/magellan-cvs/src/xen-tools/xendomains.rc,v 1.1 2008-05-24 10:32:18 niro Exp $
3    
4     #%rlevels: 3:s 4:s 5:s 0:k 1:k 2:k 6:k
5     #%start: 65
6     #%stop: 25
7    
8     #deps
9     #%needs:
10     #%before:
11     #%after:
12    
13     source /etc/sysconfig/rc
14     source $rc_functions
15    
16     get_domname()
17     {
18     local name_from_file=$(sed -rn 's/^name\W*=\W*\"?([[:alnum:]_\.-]+)\"?\W*;?/\1/p' "${1}" | tail -n 1)
19    
20     if [[ -z ${name_from_file} ]]
21     then
22     basename "${1}"
23     else
24     echo ${name_from_file}
25     fi
26     }
27    
28     is_running()
29     {
30     /usr/sbin/xm list "${1}" >/dev/null 2>&1
31     }
32    
33     set_screen_cmd()
34     {
35     screen_cmd="screen -q -r ${SCREEN_NAME:=xen} -X"
36     }
37    
38     using_screen()
39     {
40     [[ "${SCREEN}" == "yes" || "${SCREEN}" == "YES" ]]
41     }
42    
43     case "$1" in
44     start)
45     set_screen_cmd
46    
47     echo -e ${COLOREDSTAR}"Starting Xen domains from ${AUTODIR:=/etc/xen/auto} ..."
48     if using_screen
49     then
50     echo -e ${COLOREDSTAR}"Creating screen session to hold domain consoles ..."
51     (
52     screen -d -m -S ${SCREEN_NAME} -t dom0 \
53     && ${screen_cmd} zombie dr \
54     && logrotate -f /etc/xen/xen-consoles.logrotate \
55     && ${screen_cmd} logfile /var/log/xen-consoles/%t.log \
56     && ${screen_cmd} logfile flush ${SCREEN_LOG_INTERVAL:-1} \
57     && ${screen_cmd} log on \
58     && ${screen_cmd} deflog on
59     ) >/dev/null
60     if [[ $? -ne 0 ]]
61     then
62     evaluate_retval
63     return 1
64     else
65     evaluate_retval
66     fi
67     fi
68    
69     # Create all domains with config files in AUTODIR
70     for dom in $(ls "${AUTODIR}/"* 2>/dev/null)
71     do
72     name=$(get_domname ${dom})
73     if ! is_running ${name}
74     then
75     echo -e ${COLOREDSTAR}"Starting domain ${name} ..."
76     if using_screen
77     then
78     ${screen_cmd} screen -t ${name} xm create ${dom} -c
79     else
80     xm create --quiet ${dom}
81     fi
82     evaluate_retval
83     else
84     ${WARNING} "Not starting domain ${name} - already running ..."
85     fi
86     done
87    
88     update_svcstatus $1
89     splash svc_started "$(basename $0)" 0
90     ;;
91    
92     stop)
93     set_screen_cmd
94    
95     echo -e ${COLOREDSTAR}"Shutting down Xen domains from ${AUTODIR:=/etc/xen/auto} ..."
96     # Stop all domains with config files in AUTODIR
97     for dom in $(ls "${AUTODIR}/"* 2>/dev/null)
98     do
99     name=$(get_domname ${dom})
100     if is_running ${name}
101     then
102     echo -e ${COLOREDSTAR}"Stopping domain ${name} ..."
103     xm shutdown --wait ${name} >/dev/null
104     evaluate_retval
105     else
106     ${WARNING} "Not stopping domain ${name} - not running ..."
107     fi
108     done
109    
110     if using_screen
111     then
112     echo -e ${COLOREDSTAR}"Closing screen session ${SCREEN_NAME} ..."
113     ${screen_cmd} quit
114     evaluate_retval
115     fi
116    
117     update_svcstatus $1
118     splash svc_stopped "$(basename $0)" 0
119     ;;
120    
121     restart)
122     $0 stop
123     sleep 1
124     $0 start
125     ;;
126    
127     status)
128     /usr/sbin/xm list
129     ;;
130    
131     *)
132     echo "Usage: $0 {start|stop|restart|status}"
133     exit 1
134     ;;
135     esac