[packages/xen] xen-qemu-dom0-disk-backend service added

jajcus jajcus at pld-linux.org
Tue Apr 21 14:14:15 CEST 2015


commit b3e9565a8f6f78b5b6f5a8be6748a88c4633beed
Author: Jacek Konieczny <j.konieczny at eggsoft.pl>
Date:   Tue Apr 21 11:56:12 2015 +0200

    xen-qemu-dom0-disk-backend service added
    
    (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    | 66 ++++++++++++++++++++++++++++++++++++++
 xen-qemu-dom0-disk-backend.service | 20 ++++++++++++
 xen.spec                           | 14 ++++++--
 3 files changed, 98 insertions(+), 2 deletions(-)
---
diff --git a/xen.spec b/xen.spec
index 12b5407..cfe953c 100644
--- 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
diff --git a/xen-qemu-dom0-disk-backend.init b/xen-qemu-dom0-disk-backend.init
new file mode 100644
index 0000000..59895ad
--- /dev/null
+++ b/xen-qemu-dom0-disk-backend.init
@@ -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
index 0000000..2373ffd
--- /dev/null
+++ b/xen-qemu-dom0-disk-backend.service
@@ -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
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/xen.git/commitdiff/3bf78b1759961d88b27f693d380a8018e1053fbd



More information about the pld-cvs-commit mailing list