[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