mirror of
https://github.com/systemd/systemd.git
synced 2026-08-09 01:20:53 +00:00
nspawn: when booting in ephemeral mode, append random token to machine name
Also, when booting up an ephemeral container of / use the system hostname as default machine name. This way specifiyng -M is unnecessary when booting up an ephemeral container, while allowing any number of ephemeral containers to run from the same tree.
This commit is contained in:
@@ -2875,7 +2875,11 @@ static int determine_names(void) {
|
||||
}
|
||||
|
||||
if (!arg_machine) {
|
||||
arg_machine = strdup(basename(arg_image ?: arg_directory));
|
||||
if (arg_directory && path_equal(arg_directory, "/"))
|
||||
arg_machine = gethostname_malloc();
|
||||
else
|
||||
arg_machine = strdup(basename(arg_image ?: arg_directory));
|
||||
|
||||
if (!arg_machine)
|
||||
return log_oom();
|
||||
|
||||
@@ -2884,6 +2888,21 @@ static int determine_names(void) {
|
||||
log_error("Failed to determine machine name automatically, please use -M.");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (arg_ephemeral) {
|
||||
char *b;
|
||||
|
||||
/* Add a random suffix when this is an
|
||||
* ephemeral machine, so that we can run many
|
||||
* instances at once without manually having
|
||||
* to specify -M each time. */
|
||||
|
||||
if (asprintf(&b, "%s-%016" PRIx64, arg_machine, random_u64()) < 0)
|
||||
return log_oom();
|
||||
|
||||
free(arg_machine);
|
||||
arg_machine = b;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user