diff options
author | Michal Schmidt <mschmidt@redhat.com> | 2012-06-07 16:03:33 +0200 |
---|---|---|
committer | Michal Schmidt <mschmidt@redhat.com> | 2012-06-07 16:33:45 +0200 |
commit | ed061a8dc2acd93c2eb569d2d983d5a77f7e5b77 (patch) | |
tree | a758baacdf5e0cf88f6f90fc60ae82a69f4880b2 | |
parent | a2368a3f37ede469d4359421c1e4ad304c682a07 (diff) |
units: add systemd-debug-shell.service
If enabled, the service provides a root shell from an early boot. It also
remains active late into shutdown. It is useful for debugging startup and
shutdown problems.
This is the unit referenced in
http://freedesktop.org/wiki/Software/systemd/Debugging#early_debug_shell
-rw-r--r-- | Makefile.am | 5 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | units/systemd-debug-shell.service.in | 25 |
3 files changed, 35 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am index 9ffd8c7b44..6cc352ab91 100644 --- a/Makefile.am +++ b/Makefile.am @@ -340,7 +340,8 @@ nodist_systemunit_DATA = \ units/user@.service \ units/systemd-udev.service \ units/systemd-udev-trigger.service \ - units/systemd-udev-settle.service + units/systemd-udev-settle.service \ + units/systemd-debug-shell.service dist_userunit_DATA = \ units/user/default.target \ @@ -378,6 +379,7 @@ EXTRA_DIST += \ units/systemd-udev.service \ units/systemd-udev-trigger.service \ units/systemd-udev-settle.service \ + units/systemd-debug-shell.service.in \ units/hibernate.service.in \ units/suspend.service.in \ introspect.awk \ @@ -3019,6 +3021,7 @@ SED_PROCESS = \ -e 's,@VERSION\@,$(VERSION),g' \ -e 's,@rootprefix\@,$(rootprefix),g' \ -e 's,@udevlibexecdir\@,$(libexecdir)/udev,g' \ + -e 's,@sushell\@,$(sushell),g' \ < $< > $@ || rm $@ units/%: units/%.in Makefile diff --git a/configure.ac b/configure.ac index c499d222fa..59892cb3d2 100644 --- a/configure.ac +++ b/configure.ac @@ -172,6 +172,12 @@ if test "x$enable_selinux" != "xno"; then fi fi AM_CONDITIONAL(HAVE_SELINUX, [test "$have_selinux" = "yes"]) +if test "x${have_selinux}" != xno ; then + sushell=/sbin/sushell +else + sushell=/bin/bash +fi +AC_SUBST(sushell) # ------------------------------------------------------------------------------ have_xz=no diff --git a/units/systemd-debug-shell.service.in b/units/systemd-debug-shell.service.in new file mode 100644 index 0000000000..70c01c21f6 --- /dev/null +++ b/units/systemd-debug-shell.service.in @@ -0,0 +1,25 @@ +[Unit] +Description=Early root shell on tty9 FOR DEBUGGING ONLY +DefaultDependencies=no +IgnoreOnIsolate=yes + +[Service] +Environment=TERM=linux +ExecStart=@sushell@ +Restart=always +RestartSec=0 +StandardInput=tty +TTYPath=/dev/tty9 +TTYReset=yes +TTYVHangup=yes +KillMode=process +IgnoreSIGPIPE=no +# bash ignores SIGTERM +KillSignal=SIGHUP + +# Unset locale for the console getty since the console has problems +# displaying some internationalized messages. +Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION= + +[Install] +WantedBy=sysinit.target |