summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-11-10 22:35:05 +0100
committerLennart Poettering <lennart@poettering.net>2010-11-10 22:39:33 +0100
commitf3b6a3edbce43df47374761529dd663c9a39c612 (patch)
tree766673e195cd105efd45e46f35a44932742e0171
parentd257ddef22ff1a1b98e6172799819e6511b1bcfb (diff)
main: rename process on startup to 'systemd' to avoid confusion
-rw-r--r--src/main.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index cd73ee2cff..ea2f0c1a9e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -31,6 +31,7 @@
#include <signal.h>
#include <sys/wait.h>
#include <fcntl.h>
+#include <sys/prctl.h>
#include "manager.h"
#include "log.h"
@@ -896,6 +897,7 @@ int main(int argc, char *argv[]) {
bool reexecute = false;
const char *shutdown_verb = NULL;
dual_timestamp initrd_timestamp = { 0ULL, 0ULL };
+ char systemd[] = "systemd";
if (getpid() != 1 && strstr(program_invocation_short_name, "init")) {
/* This is compatbility support for SysV, where
@@ -907,6 +909,14 @@ int main(int argc, char *argv[]) {
return 1;
}
+ /* If we get started via the /sbin/init symlink then we are
+ called 'init'. After a subsequent reexecution we are then
+ called 'systemd'. That is confusing, hence let's call us
+ systemd right-away. */
+
+ program_invocation_short_name = systemd;
+ prctl(PR_SET_NAME, systemd);
+
log_show_color(isatty(STDERR_FILENO) > 0);
log_show_location(false);
log_set_max_level(LOG_INFO);