systemd: Apply a patch that improves systemd-nspawn startup notification
Systemd-nspawn now sends startup notification *after* it has forked the container init process and performed initialisation (such as creating veth network interfaces).
This commit is contained in:
parent
878b738333
commit
ab402dc1a4
|
@ -1427,7 +1427,7 @@ index 9473105..154a335 100644
|
||||||
if (!isempty(service)) {
|
if (!isempty(service)) {
|
||||||
m->service = strdup(service);
|
m->service = strdup(service);
|
||||||
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
||||||
index 9a9ed9d..4efa5b7 100644
|
index 9a9ed9d..c3e6d23 100644
|
||||||
--- a/src/nspawn/nspawn.c
|
--- a/src/nspawn/nspawn.c
|
||||||
+++ b/src/nspawn/nspawn.c
|
+++ b/src/nspawn/nspawn.c
|
||||||
@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) {
|
@@ -769,6 +769,15 @@ static int setup_resolv_conf(const char *dest) {
|
||||||
|
@ -1483,7 +1483,16 @@ index 9a9ed9d..4efa5b7 100644
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
char template[] = "/tmp/nspawn-root-XXXXXX";
|
char template[] = "/tmp/nspawn-root-XXXXXX";
|
||||||
@@ -2966,7 +2974,9 @@ int main(int argc, char *argv[]) {
|
@@ -2748,8 +2756,6 @@ int main(int argc, char *argv[]) {
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
|
||||||
|
- sd_notify(0, "READY=1");
|
||||||
|
-
|
||||||
|
assert_se(sigemptyset(&mask) == 0);
|
||||||
|
sigset_add_many(&mask, SIGCHLD, SIGWINCH, SIGTERM, SIGINT, -1);
|
||||||
|
assert_se(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
|
||||||
|
@@ -2966,7 +2972,9 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) {
|
if (!sd_id128_equal(arg_uuid, SD_ID128_NULL)) {
|
||||||
|
@ -1494,6 +1503,15 @@ index 9a9ed9d..4efa5b7 100644
|
||||||
log_oom();
|
log_oom();
|
||||||
goto child_fail;
|
goto child_fail;
|
||||||
}
|
}
|
||||||
|
@@ -3086,6 +3094,8 @@ int main(int argc, char *argv[]) {
|
||||||
|
if (r < 0)
|
||||||
|
goto finish;
|
||||||
|
|
||||||
|
+ sd_notify(0, "READY=1");
|
||||||
|
+
|
||||||
|
/* Notify the child that the parent is ready with all
|
||||||
|
* its setup, and thtat the child can now hand over
|
||||||
|
* control to the code to run inside the container. */
|
||||||
@@ -3136,6 +3146,10 @@ int main(int argc, char *argv[]) {
|
@@ -3136,6 +3146,10 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
if (!arg_quiet)
|
if (!arg_quiet)
|
||||||
|
|
Loading…
Reference in a new issue