[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3] Fix install.sh for systemd
On a fedora system, if you run `sudo sh install.sh` you break your system. The installation clobbers /var/run, a symlink to /run. A subsequent boot fails when /var/run and /run are different since accesses through /var/run can't find items that now only exist in /run and vice-versa. Skip populating /var/run/xen during make install. The directory is already created by some scripts. Adjust all remaining scripts to create XEN_RUN_DIR at runtime. Use the shell variable XEN_RUN_DIR instead of hardcoded paths. XEN_RUN_STORED is covered by XEN_RUN_DIR because xenstored is usually started afterwards. Reported-by: Jason Andryuk <jandryuk@xxxxxxxxx> Tested-by: Jason Andryuk <jandryuk@xxxxxxxxx> Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> --- v3: use variables, and quote variables, drop -m0700 from one mkdir call tools/Makefile | 2 -- tools/hotplug/FreeBSD/rc.d/xencommons.in | 1 + tools/hotplug/FreeBSD/rc.d/xendriverdomain.in | 1 + tools/hotplug/Linux/init.d/xendriverdomain.in | 1 + tools/hotplug/Linux/systemd/xenconsoled.service.in | 2 +- tools/hotplug/NetBSD/rc.d/xendriverdomain.in | 2 +- 6 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/Makefile b/tools/Makefile index 4906fdbc23..1ff90ddfa0 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -58,9 +58,7 @@ build all: subdirs-all install: $(INSTALL_DIR) -m 700 $(DESTDIR)$(XEN_DUMP_DIR) $(INSTALL_DIR) $(DESTDIR)$(XEN_LOG_DIR) - $(INSTALL_DIR) $(DESTDIR)$(XEN_RUN_DIR) $(INSTALL_DIR) $(DESTDIR)$(XEN_LIB_DIR) - $(INSTALL_DIR) $(DESTDIR)$(XEN_RUN_STORED) $(INSTALL_DIR) $(DESTDIR)$(PKG_INSTALLDIR) $(MAKE) subdirs-install diff --git a/tools/hotplug/FreeBSD/rc.d/xencommons.in b/tools/hotplug/FreeBSD/rc.d/xencommons.in index 7f7cda289f..6f429e4b0c 100644 --- a/tools/hotplug/FreeBSD/rc.d/xencommons.in +++ b/tools/hotplug/FreeBSD/rc.d/xencommons.in @@ -34,6 +34,7 @@ xen_startcmd() local time=0 local timeout=30 + mkdir -p "${XEN_RUN_DIR}" xenstored_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${XENSTORED}) if test -z "$xenstored_pid"; then printf "Starting xenservices: xenstored, xenconsoled." diff --git a/tools/hotplug/FreeBSD/rc.d/xendriverdomain.in b/tools/hotplug/FreeBSD/rc.d/xendriverdomain.in index a032822e33..f487c43468 100644 --- a/tools/hotplug/FreeBSD/rc.d/xendriverdomain.in +++ b/tools/hotplug/FreeBSD/rc.d/xendriverdomain.in @@ -27,6 +27,7 @@ xendriverdomain_start() { printf "Starting xenservices: xl devd." + mkdir -p "${XEN_RUN_DIR}" PATH="${bindir}:${sbindir}:$PATH" ${sbindir}/xl devd --pidfile ${XLDEVD_PIDFILE} ${XLDEVD_ARGS} printf "\n" diff --git a/tools/hotplug/Linux/init.d/xendriverdomain.in b/tools/hotplug/Linux/init.d/xendriverdomain.in index c63060f62a..17b381c3dc 100644 --- a/tools/hotplug/Linux/init.d/xendriverdomain.in +++ b/tools/hotplug/Linux/init.d/xendriverdomain.in @@ -49,6 +49,7 @@ fi do_start () { echo Starting xl devd... + mkdir -p "${XEN_RUN_DIR}" ${sbindir}/xl devd --pidfile=$XLDEVD_PIDFILE $XLDEVD_ARGS } do_stop () { diff --git a/tools/hotplug/Linux/systemd/xenconsoled.service.in b/tools/hotplug/Linux/systemd/xenconsoled.service.in index 1f03de9041..d84c09aa9c 100644 --- a/tools/hotplug/Linux/systemd/xenconsoled.service.in +++ b/tools/hotplug/Linux/systemd/xenconsoled.service.in @@ -11,7 +11,7 @@ Environment=XENCONSOLED_TRACE=none Environment=XENCONSOLED_LOG_DIR=@XEN_LOG_DIR@/console EnvironmentFile=-@CONFIG_DIR@/@CONFIG_LEAF_DIR@/xencommons ExecStartPre=/bin/grep -q control_d /proc/xen/capabilities -ExecStartPre=/bin/mkdir -p ${XENCONSOLED_LOG_DIR} +ExecStartPre=/bin/mkdir -p ${XENCONSOLED_LOG_DIR} @XEN_RUN_DIR@ ExecStart=@sbindir@/xenconsoled -i --log=${XENCONSOLED_TRACE} --log-dir=${XENCONSOLED_LOG_DIR} $XENCONSOLED_ARGS [Install] diff --git a/tools/hotplug/NetBSD/rc.d/xendriverdomain.in b/tools/hotplug/NetBSD/rc.d/xendriverdomain.in index f47b0b189c..87afc061ac 100644 --- a/tools/hotplug/NetBSD/rc.d/xendriverdomain.in +++ b/tools/hotplug/NetBSD/rc.d/xendriverdomain.in @@ -23,7 +23,7 @@ XLDEVD_PIDFILE="@XEN_RUN_DIR@/xldevd.pid" xendriverdomain_precmd() { - : + mkdir -p "${XEN_RUN_DIR}" } xendriverdomain_startcmd()
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |