]> git.pld-linux.org Git - packages/xen.git/commitdiff
xen-qemu-dom0-disk-backend service added
authorJacek Konieczny <j.konieczny@eggsoft.pl>
Tue, 21 Apr 2015 09:56:12 +0000 (11:56 +0200)
committerJacek Konieczny <j.konieczny@eggsoft.pl>
Tue, 21 Apr 2015 09:56:12 +0000 (11:56 +0200)
(named as in the future upstream systemd units)

needed in some use cases, like booting via pygrub from qdisk

xen-qemu-dom0-disk-backend.init [new file with mode: 0644]
xen-qemu-dom0-disk-backend.service [new file with mode: 0644]
xen.spec

diff --git a/xen-qemu-dom0-disk-backend.init b/xen-qemu-dom0-disk-backend.init
new file mode 100644 (file)
index 0000000..59895ad
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/sh
+#
+# xenstored    Script to start and stop qemu for xen dom0 disk backend
+#
+# chkconfig:   2345 70 10
+# description: Starts and stops qemu for xen dom0 disk backend
+#
+
+# Source function library
+. /etc/rc.d/init.d/functions
+
+
+start () {
+       [ -d /proc/xen ] || exit 0
+       grep -qs "control_d" /proc/xen/capabilities || exit 0
+       [ -x /usr/bin/qemu-system-i386 ] || exit 0
+
+       if [ -f /var/lock/subsys/xen-qemu-dom0-disk-backend ]; then
+               msg_already_running "qemu for xen dom0 disk backend"
+               return
+       fi
+
+       msg_starting "qemu for xen dom0 disk backend"
+       daemon /usr/bin/qemu-system-i386 -xen-domid 0 \
+               -xen-attach -name dom0 -nographic -M xenpv -daemonize \
+               -monitor /dev/null -serial /dev/null -parallel /dev/null \
+               -pidfile /var/run/qemu-dom0.pid
+
+       RETVAL=$?
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/xen-qemu-dom0-disk-backend
+}
+
+stop() {
+       if [ ! -f /var/lock/subsys/xen-qemu-dom0-disk-backend ]; then
+               msg_not_running "qemu for xen dom0 disk backend"
+               return
+       fi
+       msg_stopping "qemu for xen dom0 disk backend"
+       killproc --pidfile /var/run/qemu-dom0.pid qemu-system-i386
+       RETVAL=$?
+       rm -f /var/run/qemu-dom0.pid >/dev/null 2>&1
+       rm -f /var/lock/subsys/xen-qemu-dom0-disk-backend >/dev/null 2>&1
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  status)
+       status --pidfile /var/run/qemu-dom0.pid xen-qemu-dom0-disk-backend qemu-system-i386
+       ;;
+  stop)
+       stop
+       ;;
+  force-reload|restart)
+        stop
+       start
+       ;;
+  *)
+       msg_usage "$0 {start|stop|status|restart|force-reload}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/xen-qemu-dom0-disk-backend.service b/xen-qemu-dom0-disk-backend.service
new file mode 100644 (file)
index 0000000..2373ffd
--- /dev/null
@@ -0,0 +1,20 @@
+[Unit]
+Description=qemu for xen dom0 disk backend
+Requires=proc-xen.mount xenstored.service
+After=proc-xen.mount xenstored.service xenconsoled.service
+Before=xendomains.service libvirtd.service libvirt-guests.service
+RefuseManualStop=true
+ConditionPathExists=/proc/xen/capabilities
+ConditionFileIsExecutable=/usr/bin/qemu-system-i386
+
+[Service]
+Type=simple
+PIDFile=/var/run/qemu-dom0.pid
+ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities
+ExecStart=/usr/bin/qemu-system-i386 -xen-domid 0 \
+        -xen-attach -name dom0 -nographic -M xenpv -daemonize \
+        -monitor /dev/null -serial /dev/null -parallel /dev/null \
+        -pidfile /var/run/qemu-dom0.pid
+
+[Install]
+WantedBy=multi-user.target
index 12b54072bd6a9180b8fb95deb3e56e95c6054754..cfe953cc609670ff1c95abab5f478eb45ec532b5 100644 (file)
--- a/xen.spec
+++ b/xen.spec
@@ -81,6 +81,8 @@ Source41:     xen-watchdog.service
 Source42:      xen-dom0-modules-load.conf
 Source43:      xendomains.sh
 Source44:      xendomains.service
+Source45:      xen-qemu-dom0-disk-backend.service
+Source46:      xen-qemu-dom0-disk-backend.init
 # sysvinit scripts
 Source50:      xend.init
 Source51:      xenconsoled.init
@@ -532,6 +534,7 @@ install %{SOURCE41} $RPM_BUILD_ROOT%{systemdunitdir}/xen-watchdog.service
 install %{SOURCE42} $RPM_BUILD_ROOT/etc/modules-load.d/xen-dom0.conf
 install %{SOURCE43} $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/bin/xendomains.sh
 install %{SOURCE44} $RPM_BUILD_ROOT%{systemdunitdir}/xendomains.service
+install %{SOURCE45} $RPM_BUILD_ROOT%{systemdunitdir}/xen-qemu-dom0-disk-backend.service
 # sysvinit scripts
 %{__rm} $RPM_BUILD_ROOT/etc/rc.d/init.d/*
 %{__rm} $RPM_BUILD_ROOT/etc/sysconfig/xencommons
@@ -542,6 +545,7 @@ install %{SOURCE51} $RPM_BUILD_ROOT/etc/rc.d/init.d/xenconsoled
 install %{SOURCE52} $RPM_BUILD_ROOT/etc/rc.d/init.d/xenstored
 install %{SOURCE53} $RPM_BUILD_ROOT/etc/rc.d/init.d/xen-watchdog
 install %{SOURCE54} $RPM_BUILD_ROOT/etc/rc.d/init.d/xendomains
+install %{SOURCE46} $RPM_BUILD_ROOT/etc/rc.d/init.d/xen-qemu-dom0-disk-backend
 install %{SOURCE55} $RPM_BUILD_ROOT/etc/logrotate.d/xen
 install %{SOURCE56} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/xen.conf
 
@@ -589,8 +593,9 @@ rm -rf $RPM_BUILD_ROOT
 /sbin/chkconfig --add xenconsoled
 /sbin/chkconfig --add xenstored
 /sbin/chkconfig --add xendomains
+/sbin/chkconfig --add xen-qemu-dom0-disk-backend
 NORESTART=1
-%systemd_post xen-watchdog.service xenconsoled.service xenstored.service xendomains.service
+%systemd_post xen-watchdog.service xenconsoled.service xenstored.service xendomains.service xen-qemu-dom0-disk-backend.service
 
 %preun
 if [ "$1" = "0" ]; then
@@ -605,8 +610,11 @@ if [ "$1" = "0" ]; then
 
        %service xen-watchdog stop
        /sbin/chkconfig --del xen-watchdog
+
+       %service xen-qemu-dom0-disk-backend stop
+       /sbin/chkconfig --del xen-qemu-dom0-disk-backend
 fi
-%systemd_preun xen-watchdog.service xenconsoled.service xenstored.service xendomains.service
+%systemd_preun xen-watchdog.service xenconsoled.service xenstored.service xendomains.service xen-qemu-dom0-disk-backend.service
 
 %postun
 %systemd_reload
@@ -653,6 +661,7 @@ fi
 %attr(754,root,root) /etc/rc.d/init.d/xenconsoled
 %attr(754,root,root) /etc/rc.d/init.d/xenstored
 %attr(754,root,root) /etc/rc.d/init.d/xendomains
+%attr(754,root,root) /etc/rc.d/init.d/xen-qemu-dom0-disk-backend
 %config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/xen-dom0.conf
 %{systemdunitdir}/proc-xen.mount
 %{systemdunitdir}/var-lib-xenstored.mount
@@ -660,6 +669,7 @@ fi
 %{systemdunitdir}/xenconsoled.service
 %{systemdunitdir}/xenstored.service
 %{systemdunitdir}/xendomains.service
+%{systemdunitdir}/xen-qemu-dom0-disk-backend.service
 %dir %{_sysconfdir}/xen
 %dir %{_sysconfdir}/xen/auto
 %dir %{_sysconfdir}/xen/examples
This page took 0.114476 seconds and 4 git commands to generate.