[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2] Fix install.sh for systemd


  • To: xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Olaf Hering <olaf@xxxxxxxxx>
  • Date: Mon, 8 May 2023 17:14:37 +0000
  • Arc-authentication-results: i=1; strato.com; arc=none; dkim=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; t=1683566085; s=strato-dkim-0002; d=strato.com; h=Message-Id:Date:Subject:Cc:To:From:Cc:Date:From:Subject:Sender; bh=y0EEjOUz8ZL2cVZEIRcJ/bDf+Ceoz247L+uHTHcTrAo=; b=b05BlS4jHDUWuizJL3NhuJotZtOLwERDH4ZMFsEmvbs1CocwbRm41A3tZEBaDUksS1 bObD3J8ePYHUk56GTqUyNvuIIyr0TpW5RGBlTbFg2B+8kZ1iKGYar6S9pIcE4v2EoUEQ Aiif6AdOVQ2p43r4o49yQt8SkH3UCdRzJGUEJWmir2/yaSTfISyhavMHQmrOrdzTssTL Uy+8oDr+ixK9Q8+QuM/NvGZlMiF9/OM7ERoOIn7MdwiqlqeRQq061xtFbRdponjbMUyj par6x6S8IudAulCdUcHgTeeAc3I/J5elU9eXBxQl5yTrnaQwhbczQ43Nu5CdN53R0mnr 5qZg==
  • Arc-seal: i=1; a=rsa-sha256; t=1683566085; cv=none; d=strato.com; s=strato-dkim-0002; b=tE6YHuHy5lVgdjuDoGDmTwSBgXKtuS1zDa+h/S810xaL3xbUpjKNwYeQHYaBy2RvFl XpZuEd8VLlxKqHAEIc6ga5n58BAziTQas967IHhukhcGU0EDv2VsvjZ7VEaqrihJ2Y9/ i0Vh4ngEwa0bPncFQPvXLsOHMVorH7YoZ/dzlDlOWjPIgm8mif3tAGTWiCrnKCCsRpx5 3p479Zye8lgUFoWvbLH1feNVbJbESCTKFSG1ntDBw8jU7975kRDXEu7X0WX7prpco4nY 8IA6BOJYLF39Ln+EoVt4zk6X+h1daiCLOmcQ3KbsYczTIh/wB+29XuPf70rWREdCAzxP zuOw==
  • Cc: Jason Andryuk <jandryuk@xxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Delivery-date: Mon, 08 May 2023 17:15:01 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

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.

XEN_RUN_STORED is covered by XEN_RUN_DIR because xenstored is usually
started afterwards.

Reported-by: Jason Andryuk <jandryuk@xxxxxxxxx>
Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
---
 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..1cf217d418 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..030d104024 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..1055d0b942 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 -m700 -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..23a5352502 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()



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.