From Fedora Project Wiki
(use sushell for SELinux) |
(bold CTRL+ALT+F9) |
||
Line 38: | Line 38: | ||
mkdir sysinit.target.wants | mkdir sysinit.target.wants | ||
ln -s ../debug-shell.service sysinit.target.wants/</pre>}} | ln -s ../debug-shell.service sysinit.target.wants/</pre>}} | ||
* Next time when booting, you will be able to switch to tty9 using CTRL+ALT+F9 and have a root shell there available from an early point in the booting process. | * Next time when booting, you will be able to switch to tty9 using '''CTRL+ALT+F9''' and have a root shell there available from an early point in the booting process. | ||
You can use the shell for checking the status of services, reading logs, looking for stuck jobs with <code>systemctl list-jobs</code>, etc. | You can use the shell for checking the status of services, reading logs, looking for stuck jobs with <code>systemctl list-jobs</code>, etc. | ||
{{admon/warning|Use this shell only for debugging!|Do not forget to disable debug-shell.service after you've finished debugging your boot problems. Leaving the root shell always available would be a security risk.}} | {{admon/warning|Use this shell only for debugging!|Do not forget to disable debug-shell.service after you've finished debugging your boot problems. Leaving the root shell always available would be a security risk.}} |
Revision as of 14:50, 14 May 2012
Setting up an early debug shell
In case of boot-time problems with systemd, it is useful to have a root shell available for debugging.
- Save the following unit as /etc/systemd/system/debug-shell.service
[Unit] Description=early root shell on tty9 for debugging DefaultDependencies=no IgnoreOnIsolate=yes [Service] Environment=TERM=linux # /bin/bash could be used, but sushell ensures the correct SELinux context ExecStart=/sbin/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
- Enable it using
systemctl enable debug-shell.service
- Next time when booting, you will be able to switch to tty9 using CTRL+ALT+F9 and have a root shell there available from an early point in the booting process.
You can use the shell for checking the status of services, reading logs, looking for stuck jobs with systemctl list-jobs
, etc.