If I want to run a container as a service, it would be nice if it used the service cgroup configuration --- src/nspawn/nspawn.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 1394ee6..9042412 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -83,6 +83,7 @@ static char *arg_machine = NULL; static char *process_label = NULL; static char *file_label = NULL; static const char *arg_slice = NULL; +static bool arg_service = false; static bool arg_private_network = false; static bool arg_read_only = false; static bool arg_boot = false; @@ -134,6 +135,7 @@ static int help(void) { " -Z --processlabel=LABEL Set the MAC Label to be used by processes in container\n" " --private-network Disable network in container\n" " --read-only Mount the root directory read-only\n" + " -s --service Run this container as a service not a machine\n" " --capability=CAP In addition to the default, retain specified\n" " capability\n" " --drop-capability=CAP Drop the specified capability from the default set\n" @@ -182,6 +184,7 @@ static int parse_argv(int argc, char *argv[]) { { "setenv", required_argument, NULL, ARG_SETENV }, { "label", required_argument, NULL, 'Z' }, { "filelabel", required_argument, NULL, 'L' }, + { "service", no_argument, NULL, 's' }, {} }; @@ -190,7 +193,7 @@ static int parse_argv(int argc, char *argv[]) { assert(argc >= 0); assert(argv); - while ((c = getopt_long(argc, argv, "+hD:u:bL:M:jS:Z:", options, NULL)) >= 0) { + while ((c = getopt_long(argc, argv, "+hD:u:bL:M:jsS:Z:", options, NULL)) >= 0) { switch (c) { @@ -269,6 +272,10 @@ static int parse_argv(int argc, char *argv[]) { break; + case 's': + arg_service = true; + break; + case ARG_READ_ONLY: arg_read_only = true; break; @@ -1561,9 +1568,11 @@ int main(int argc, char *argv[]) { fdset_free(fds); fds = NULL; - r = register_machine(pid); - if (r < 0) - goto finish; + if (! arg_service) { + r = register_machine(pid); + if (r < 0) + goto finish; + } eventfd_write(sync_fd, 1); close_nointr_nofail(sync_fd); -- 1.8.5.3 _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel