aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xenstore
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-04-24 12:44:53 -0400
committerIan Campbell <ian.campbell@citrix.com>2013-05-01 12:58:06 +0100
commit3b779d88e4d82499d0823f7ac1f571f3051efe13 (patch)
treeeca2d01e8abac72d2701a11e9de6ccf4b19a56c7 /tools/xenstore
parent9e049fa424d8bc2384cf6b0475960d49a29acca0 (diff)
downloadxen-3b779d88e4d82499d0823f7ac1f571f3051efe13.tar.gz
xen-3b779d88e4d82499d0823f7ac1f571f3051efe13.tar.bz2
xen-3b779d88e4d82499d0823f7ac1f571f3051efe13.zip
xenstore: create pidfile in init-xenstore-domain
Since libxl checks for the existance of /var/run/xenstored.pid in order to ensure xenstore is running, create this file when starting the xenstore stub domain. This also changes the Makefile to enable the creation of the init-xenstore-domain tool during tools compilation, since the existing Makefile incorrectly added to the ALL_TARGETS list when compiling the stubdom, when this variable is not used. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Acked-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools/xenstore')
-rw-r--r--tools/xenstore/Makefile5
-rw-r--r--tools/xenstore/init-xenstore-domain.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile
index 9172d3ae60..1bb6e58111 100644
--- a/tools/xenstore/Makefile
+++ b/tools/xenstore/Makefile
@@ -29,9 +29,12 @@ endif
ALL_TARGETS = libxenstore.so libxenstore.a clients xs_tdb_dump xenstored
+ifeq ($(CONFIG_Linux),y)
+ALL_TARGETS += init-xenstore-domain
+endif
+
ifdef CONFIG_STUBDOM
CFLAGS += -DNO_SOCKETS=1
-ALL_TARGETS += init-xenstore-domain
endif
.PHONY: all
diff --git a/tools/xenstore/init-xenstore-domain.c b/tools/xenstore/init-xenstore-domain.c
index 18c075bebd..35f1aa3e1a 100644
--- a/tools/xenstore/init-xenstore-domain.c
+++ b/tools/xenstore/init-xenstore-domain.c
@@ -1,4 +1,5 @@
#include <fcntl.h>
+#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdint.h>
@@ -69,7 +70,7 @@ int main(int argc, char** argv)
xc_interface *xch;
struct xs_handle *xsh;
char buf[16];
- int rv;
+ int rv, fd;
if (argc != 4) {
printf("Use: %s <xenstore-kernel> <memory_mb> <flask-label>\n", argv[0]);
@@ -90,5 +91,14 @@ int main(int argc, char** argv)
xs_write(xsh, XBT_NULL, "/tool/xenstored/domid", buf, rv);
xs_daemon_close(xsh);
+ fd = creat("/var/run/xenstored.pid", 0666);
+ if (fd < 0)
+ return 3;
+ rv = snprintf(buf, 16, "domid:%d\n", domid);
+ rv = write(fd, buf, rv);
+ close(fd);
+ if (rv < 0)
+ return 3;
+
return 0;
}