Merge pull request #5801 from keszybz/help-error
nspawn,cgtop: make sure --version, --help always work
This commit is contained in:
+10
-10
@@ -75,6 +75,7 @@ static usec_t arg_delay = 1*USEC_PER_SEC;
|
||||
static char* arg_machine = NULL;
|
||||
static char* arg_root = NULL;
|
||||
static bool arg_recursive = true;
|
||||
static bool arg_recursive_unset = false;
|
||||
|
||||
static enum {
|
||||
COUNT_PIDS,
|
||||
@@ -732,7 +733,6 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
{}
|
||||
};
|
||||
|
||||
bool recursive_unset = false;
|
||||
int c, r;
|
||||
|
||||
assert(argc >= 1);
|
||||
@@ -852,7 +852,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
arg_recursive = r;
|
||||
recursive_unset = r == 0;
|
||||
arg_recursive_unset = r == 0;
|
||||
break;
|
||||
|
||||
case 'M':
|
||||
@@ -873,11 +873,6 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (recursive_unset && arg_count == COUNT_PIDS) {
|
||||
log_error("Non-recursive counting is only supported when counting processes, not tasks. Use -P or -k.");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -902,6 +897,10 @@ int main(int argc, char *argv[]) {
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
|
||||
r = parse_argv(argc, argv);
|
||||
if (r <= 0)
|
||||
goto finish;
|
||||
|
||||
r = cg_mask_supported(&mask);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to determine supported controllers: %m");
|
||||
@@ -910,9 +909,10 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
arg_count = (mask & CGROUP_MASK_PIDS) ? COUNT_PIDS : COUNT_USERSPACE_PROCESSES;
|
||||
|
||||
r = parse_argv(argc, argv);
|
||||
if (r <= 0)
|
||||
goto finish;
|
||||
if (arg_recursive_unset && arg_count == COUNT_PIDS) {
|
||||
log_error("Non-recursive counting is only supported when counting processes, not tasks. Use -P or -k.");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
r = show_cgroup_get_path_and_warn(arg_machine, arg_root, &root);
|
||||
if (r < 0) {
|
||||
|
||||
+4
-4
@@ -1158,6 +1158,10 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
|
||||
arg_caps_retain = (arg_caps_retain | plus | (arg_private_network ? 1ULL << CAP_NET_ADMIN : 0)) & ~minus;
|
||||
|
||||
r = cg_unified_flush();
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine whether the unified cgroups hierarchy is used: %m");
|
||||
|
||||
e = getenv("SYSTEMD_NSPAWN_CONTAINER_SERVICE");
|
||||
if (e)
|
||||
arg_container_service_name = e;
|
||||
@@ -3545,10 +3549,6 @@ int main(int argc, char *argv[]) {
|
||||
log_parse_environment();
|
||||
log_open();
|
||||
|
||||
r = cg_unified_flush();
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine whether the unified cgroups hierarchy is used: %m");
|
||||
|
||||
/* Make sure rename_process() in the stub init process can work */
|
||||
saved_argv = argv;
|
||||
saved_argc = argc;
|
||||
|
||||
Reference in New Issue
Block a user