summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/basic/process-util.c44
-rw-r--r--src/basic/process-util.h2
-rw-r--r--src/basic/util.c41
-rw-r--r--src/basic/util.h2
-rw-r--r--src/libsystemd/sd-bus/bus-container.c1
-rw-r--r--src/shared/logs-show.c1
6 files changed, 46 insertions, 45 deletions
diff --git a/src/basic/process-util.c b/src/basic/process-util.c
index 0213f5913f..6e4a56b0aa 100644
--- a/src/basic/process-util.c
+++ b/src/basic/process-util.c
@@ -22,12 +22,14 @@
#include "alloc-util.h"
#include "architecture.h"
+#include "env-file.h"
#include "env-util.h"
#include "errno-util.h"
#include "escape.h"
#include "fd-util.h"
#include "fileio.h"
#include "fs-util.h"
+#include "hostname-util.h"
#include "locale-util.h"
#include "log.h"
#include "macro.h"
@@ -35,6 +37,7 @@
#include "missing_sched.h"
#include "missing_syscall.h"
#include "namespace-util.h"
+#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
#include "raw-clone.h"
@@ -253,6 +256,47 @@ int get_process_cmdline(pid_t pid, size_t max_columns, ProcessCmdlineFlags flags
return 0;
}
+int container_get_leader(const char *machine, pid_t *pid) {
+ _cleanup_free_ char *s = NULL, *class = NULL;
+ const char *p;
+ pid_t leader;
+ int r;
+
+ assert(machine);
+ assert(pid);
+
+ if (streq(machine, ".host")) {
+ *pid = 1;
+ return 0;
+ }
+
+ if (!hostname_is_valid(machine, 0))
+ return -EINVAL;
+
+ p = strjoina("/run/systemd/machines/", machine);
+ r = parse_env_file(NULL, p,
+ "LEADER", &s,
+ "CLASS", &class);
+ if (r == -ENOENT)
+ return -EHOSTDOWN;
+ if (r < 0)
+ return r;
+ if (!s)
+ return -EIO;
+
+ if (!streq_ptr(class, "container"))
+ return -EIO;
+
+ r = parse_pid(s, &leader);
+ if (r < 0)
+ return r;
+ if (leader <= 1)
+ return -EIO;
+
+ *pid = leader;
+ return 0;
+}
+
static int update_argv(const char name[], size_t l) {
static int can_do = -1;
diff --git a/src/basic/process-util.h b/src/basic/process-util.h
index ed2f73673e..d5986ad646 100644
--- a/src/basic/process-util.h
+++ b/src/basic/process-util.h
@@ -50,6 +50,8 @@ int get_process_environ(pid_t pid, char **ret);
int get_process_ppid(pid_t pid, pid_t *ret);
int get_process_umask(pid_t pid, mode_t *ret);
+int container_get_leader(const char *machine, pid_t *pid);
+
int wait_for_terminate(pid_t pid, siginfo_t *status);
typedef enum WaitFlags {
diff --git a/src/basic/util.c b/src/basic/util.c
index c47ea4584b..74f5ad7236 100644
--- a/src/basic/util.c
+++ b/src/basic/util.c
@@ -21,47 +21,6 @@
int saved_argc = 0;
char **saved_argv = NULL;
-int container_get_leader(const char *machine, pid_t *pid) {
- _cleanup_free_ char *s = NULL, *class = NULL;
- const char *p;
- pid_t leader;
- int r;
-
- assert(machine);
- assert(pid);
-
- if (streq(machine, ".host")) {
- *pid = 1;
- return 0;
- }
-
- if (!hostname_is_valid(machine, 0))
- return -EINVAL;
-
- p = strjoina("/run/systemd/machines/", machine);
- r = parse_env_file(NULL, p,
- "LEADER", &s,
- "CLASS", &class);
- if (r == -ENOENT)
- return -EHOSTDOWN;
- if (r < 0)
- return r;
- if (!s)
- return -EIO;
-
- if (!streq_ptr(class, "container"))
- return -EIO;
-
- r = parse_pid(s, &leader);
- if (r < 0)
- return r;
- if (leader <= 1)
- return -EIO;
-
- *pid = leader;
- return 0;
-}
-
int version(void) {
printf("systemd " STRINGIFY(PROJECT_VERSION) " (" GIT_VERSION ")\n%s\n",
systemd_features);
diff --git a/src/basic/util.h b/src/basic/util.h
index 347e4fe4b0..6438555c6c 100644
--- a/src/basic/util.h
+++ b/src/basic/util.h
@@ -66,8 +66,6 @@ static inline unsigned log2u_round_up(unsigned x) {
return log2u(x - 1) + 1;
}
-int container_get_leader(const char *machine, pid_t *pid);
-
int version(void);
void disable_coredumps(void);
diff --git a/src/libsystemd/sd-bus/bus-container.c b/src/libsystemd/sd-bus/bus-container.c
index b3c0279c0b..b9a38269d9 100644
--- a/src/libsystemd/sd-bus/bus-container.c
+++ b/src/libsystemd/sd-bus/bus-container.c
@@ -10,7 +10,6 @@
#include "namespace-util.h"
#include "process-util.h"
#include "string-util.h"
-#include "util.h"
int bus_container_connect_socket(sd_bus *b) {
_cleanup_close_pair_ int pair[2] = { -1, -1 };
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index 2b180a8c0f..7972fc009e 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -40,7 +40,6 @@
#include "terminal-util.h"
#include "time-util.h"
#include "utf8.h"
-#include "util.h"
#include "web-util.h"
/* up to three lines (each up to 100 characters) or 300 characters, whichever is less */