[systemd-devel] Howto get the original TTY in a service

Martin Vogt mvogt1 at gmail.com
Tue Jan 26 05:31:11 PST 2016


Hello list,

in a desktop session it is common behaviour to have a pop up dialog
if the user presses CTRL+ALT+DEL.
If the user press cancel, the original desktop is resumed.

I like to have the same functionality on a virtual console.
If the user hits CTRL+ALT+DEL on /dev/tty2 I can display a dialog:

[ ] reboot
[ ] halt
[ok] [cancel]

and if the user hits cancel the focus should switch back to the virtual
console, where
CTRL+ALT+DEL was pressed.

I need the console in a shutdownselect.service file (and in the script)
where the user pressed CTRL+ALT+DEL.

I cannot figure out how to do it.

The script started from systemd gets for the tty command "not a tty"

best regards,

Martin

PS: The implemenation goes like this "shutdownselect.sh":

#!/bin/bash
CURR_TTY=`/usr/bin/tty`
case "$CURR_TTY" in
   /dev/tty*)
            ;;
   *)
       echo "err: $CURR_TTY" >>/tmp/debug.txt
       exit 0
esac
CURR_TTY_N=${CURR_TTY#/dev/tty}

** switch to tty 63**
** display dialog **

chvt $CURR_TTY_N


shutdownselect.service (which is required in ctrl-alt-del.target)

[Unit]
Description=Reboot GUI
DefaultDependencies=no
AllowIsolate=yes
JobTimeoutSec=30min
JobTimeoutAction=reboot-force

[Service]
ExecStart=/tmp/shutdownselect
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20160126/73cfa8bc/attachment.html>


More information about the systemd-devel mailing list