[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