[systemd-commits] 3 commits - Makefile.am src/manager.c TODO units/console-shell.service.m4 units/.gitignore

Lennart Poettering lennart at kemper.freedesktop.org
Mon Mar 14 14:05:11 PDT 2011


 Makefile.am                    |    2 ++
 TODO                           |    4 ++++
 src/manager.c                  |   11 +++++++++--
 units/.gitignore               |    1 +
 units/console-shell.service.m4 |   41 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 57 insertions(+), 2 deletions(-)

New commits:
commit e03ae6615a1fe9a2aee854d00c3fc7397a06983d
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Mar 14 21:47:41 2011 +0100

    manager: don't show kernel boot-up time for containers

diff --git a/TODO b/TODO
index 4fc728f..522ef59 100644
--- a/TODO
+++ b/TODO
@@ -26,6 +26,8 @@ F15:
 
 * remove getty magic, move it into a generator
 
+* recreate private socket on SIGUSR2
+
 Features:
 
 * optionally create watched directories in .path units
diff --git a/src/manager.c b/src/manager.c
index 919560b..df75eca 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -2841,7 +2841,8 @@ void manager_check_finished(Manager *m) {
 
         dual_timestamp_get(&m->finish_timestamp);
 
-        if (m->running_as == MANAGER_SYSTEM) {
+        if (m->running_as == MANAGER_SYSTEM && detect_container(NULL) <= 0) {
+
                 if (dual_timestamp_is_set(&m->initrd_timestamp)) {
                         log_info("Startup finished in %s (kernel) + %s (initrd) + %s (userspace) = %s.",
                                  format_timespan(kernel, sizeof(kernel),

commit 72fe22f93059ec6bbc9c9da0171e3be9d8b1c9ce
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Mar 14 21:27:39 2011 +0100

    manager: show who killed us

diff --git a/src/manager.c b/src/manager.c
index cee4344..919560b 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -2057,6 +2057,8 @@ static int manager_process_signal_fd(Manager *m) {
         assert(m);
 
         for (;;) {
+                char *p = NULL;
+
                 if ((n = read(m->signal_watch.fd, &sfsi, sizeof(sfsi))) != sizeof(sfsi)) {
 
                         if (n >= 0)
@@ -2068,7 +2070,11 @@ static int manager_process_signal_fd(Manager *m) {
                         return -errno;
                 }
 
-                log_debug("Received SIG%s", strna(signal_to_string(sfsi.ssi_signo)));
+                get_process_name(sfsi.ssi_pid, &p);
+                log_debug("Received SIG%s from PID %lu (%s)",
+                          strna(signal_to_string(sfsi.ssi_signo)),
+                          (unsigned long) sfsi.ssi_pid, strna(p));
+                free(p);
 
                 switch (sfsi.ssi_signo) {
 

commit 1063dc3a525a87c0285e071794317f71724492fe
Author: Lennart Poettering <lennart at poettering.net>
Date:   Mon Mar 14 21:00:53 2011 +0100

    units: add console-shell.service which can be used insted of the gettys to get a shell on /dev/console

diff --git a/Makefile.am b/Makefile.am
index a2e40c3..97c8be3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -260,6 +260,7 @@ dist_systemunit_DATA = \
 nodist_systemunit_DATA = \
 	units/getty at .service \
 	units/serial-getty at .service \
+        units/console-shell.service \
 	units/graphical.target \
 	units/remote-fs.target \
 	units/multi-user.target \
@@ -304,6 +305,7 @@ nodist_userunit_DATA = \
 EXTRA_DIST = \
 	units/getty at .service.m4 \
 	units/serial-getty at .service.m4 \
+        units/console-shell.service.m4 \
 	units/graphical.target.m4 \
 	units/multi-user.target.m4 \
 	units/remote-fs.target.m4 \
diff --git a/TODO b/TODO
index 986e06a..4fc728f 100644
--- a/TODO
+++ b/TODO
@@ -24,6 +24,8 @@ F15:
 
 * capability_bounding_set_drop not used.
 
+* remove getty magic, move it into a generator
+
 Features:
 
 * optionally create watched directories in .path units
diff --git a/units/.gitignore b/units/.gitignore
index 008446d..a64cac1 100644
--- a/units/.gitignore
+++ b/units/.gitignore
@@ -1,3 +1,4 @@
+console-shell.service
 systemd-sysctl.service
 systemd-ask-password-console.service
 rescue.service
diff --git a/units/console-shell.service.m4 b/units/console-shell.service.m4
new file mode 100644
index 0000000..c98a08f
--- /dev/null
+++ b/units/console-shell.service.m4
@@ -0,0 +1,41 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=Console Shell
+After=systemd-user-sessions.service plymouth-quit-wait.service
+m4_ifdef(`TARGET_FEDORA',
+After=rc-local.service
+)m4_dnl
+m4_ifdef(`TARGET_ARCH',
+After=rc-local.service
+)m4_dnl
+m4_ifdef(`TARGET_FRUGALWARE',
+After=local.service
+)m4_dnl
+m4_ifdef(`TARGET_ALTLINUX',
+After=rc-local.service
+)m4_dnl
+m4_ifdef(`TARGET_MANDRIVA',
+After=rc-local.service
+)m4_dnl
+Before=getty.target
+
+[Service]
+Environment=HOME=/root
+WorkingDirectory=/root
+ExecStart=-/sbin/sulogin
+ExecStopPost=-/bin/systemctl poweroff
+StandardInput=tty-force
+KillMode=process-group
+
+# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
+# terminates cleanly.
+KillSignal=SIGHUP
+
+[Install]
+WantedBy=getty.target



More information about the systemd-commits mailing list