diff options
author | Daniel De Graaf <dgdegra@tycho.nsa.gov> | 2013-04-24 12:44:53 -0400 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-05-01 12:58:06 +0100 |
commit | 3b779d88e4d82499d0823f7ac1f571f3051efe13 (patch) | |
tree | eca2d01e8abac72d2701a11e9de6ccf4b19a56c7 /tools/xenstore | |
parent | 9e049fa424d8bc2384cf6b0475960d49a29acca0 (diff) | |
download | xen-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/Makefile | 5 | ||||
-rw-r--r-- | tools/xenstore/init-xenstore-domain.c | 12 |
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; } |