3 # Provides: sipb-xen-console
4 # Required-Start: $local_fs $remote_fs
5 # Required-Stop: $local_fs $remote_fs
6 # Default-Start: 2 3 4 5
8 # Short-Description: sipb-xen Console Server homedir filesystem
12 # Author: SIPB Xen Project <sipb-xen@mit.edu>
16 # PATH should only include /usr/* if it runs after the mountnfs.sh script
17 PATH=/sbin:/usr/sbin:/bin:/usr/bin
18 DESC="The sipb-xen console server"
20 DAEMON=/usr/bin/sipb-xen-consolefs
21 DAEMON_ARGS="/consolefs"
22 PIDFILE=/var/run/$NAME.pid
23 SCRIPTNAME=/etc/init.d/$NAME
25 # Exit if the package is not installed
26 [ -x "$DAEMON" ] || exit 0
28 # Read configuration variable file if it is present
29 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
31 # Load the VERBOSE setting and other rcS variables
34 # Define LSB log_* functions.
35 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
36 . /lib/lsb/init-functions
41 for i in $(invirt-getconf --ls hosts); do
42 local hostname=$(invirt-getconf hosts.$i.hostname)
43 echo "#include /etc/conserver/conf.d/$hostname"
45 } > /etc/conserver/invirt-hosts.cf
46 local realm=$(invirt-getconf authn.0.realm)
48 for i in $(invirt-getconf --ls hosts); do
49 local hostname=$(invirt-getconf hosts.$i.hostname)
50 echo "host/$hostname@$realm"
52 } > /etc/remctl/acl/invirt-console
54 cat > /etc/nss-pgsql.conf << EOF
55 host = $(invirt-getconf db.host)
56 port = $(invirt-getconf db.port)
57 database = $(invirt-getconf db.dbname)
58 login = $(invirt-getconf db.user)
60 querypasswd = SELECT name, NULL, machine_id + 1000 as uid, machine_id + 1000 as gid, '', '/consolefs/'|| name, '/usr/bin/sipb-xen-consolesh' FROM machines
61 querygroup = SELECT name, NULL, machine_id + 1000 as gid FROM machines
62 querymembers = SELECT name FROM machines WHERE 1000 + machine_id = %d
63 queryids = SELECT 1000 + machine_id AS gid FROM machines LIMIT 0
66 passwd_uid = 1000 + machine_id
69 group_gid = 1000 + machine_id
72 fmt > /etc/issue.net.no_tkt << EOF
73 You must login to the $(invirt-getconf console.hostname) console server using
74 Kerberos tickets, but your ssh client did not pass a valid ticket to the
80 # Function that starts the daemon/service
85 # 0 if daemon has been started
86 # 1 if daemon was already running
87 # 2 if daemon could not be started
90 daemon --running -n $NAME && return 1
91 daemon -r -O daemon.info -E daemon.err -n $NAME -U $DAEMON $DAEMON_ARGS || return 2
95 # Function that stops the daemon/service
100 # 0 if daemon has been stopped
101 # 1 if daemon was already stopped
102 # 2 if daemon could not be stopped
103 # other if a failure occurred
104 daemon --stop -n $NAME
106 [ "$RETVAL" = 2 ] && return 2
107 # Many daemons don't delete their pidfiles when they exit.
109 umount "$DAEMON_ARGS"
116 /etc/init.d/conserver-server reload
121 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
124 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
125 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
129 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
132 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
133 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
137 log_daemon_msg "Reloading $DESC" "$NAME"
142 log_daemon_msg "Restarting $DESC" "$NAME"
149 1) log_end_msg 1 ;; # Old process is still running
150 *) log_end_msg 1 ;; # Failed to start
160 echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2