Package: killer Version: 0.90-8 Severity: wishlist User: [email protected] Usertags: debian-edu
As can be seen in <URL: http://bugs.debian.org/648604 > and <URL: http://bugs.debian.org/709521 >, some times display managers fail to update the utmp database of currently logged in users, and this cause killer to throw out logged in users. While this definitely is a bug in lightdm and other display managers to not update utmp and wtmp, we could consider asking the consolekit module to list local users when utmp is empty. Something similar to this might work (the patch is incomplete and untested): --- killer-0.90/killer 2000-02-10 16:55:57.000000000 +0100 +++ killer 2013-06-29 09:03:51.000000000 +0200 @@ -871,8 +871,7 @@ $consoleuser = ""; - open ( W, "$whocmd|") || return; - + if (open ( W, "$whocmd|")) { while ( <W> ) { chop; @parts = split(/[ \t]+/); @@ -883,6 +882,24 @@ } close(W); } + my $consolekitcmd = '/usr/bin/ck-list-sessions' + if ( ! $consoleuser && -x $consolekitcmd) { + open ( W, "$consolekitcmd|") || return; + my $user; + while ( <W> ) { + chomp; + if (/^\tunix-user = '(\d+)'/) { + $user = $1; + } + if (/^\tis-local = (.+)$/) { + if ('TRUE' eq $1) { + $consoleuser = uid2username($user); + } + } + } + close(W); + } +} =head2 showConsoleUser The output from ck-list-sessions look like this: $ ck-list-sessions Session1: unix-user = '10001' realname = 'Some User' seat = 'Seat1' session-type = '' active = TRUE x11-display = ':0' x11-display-device = '/dev/tty7' display-device = '' remote-host-name = '' is-local = TRUE on-since = '2013-06-28T07:41:00.536509Z' login-session-id = '' % Should we try to extend killer like this? -- Happy hacking Petter Reinholdtsen -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

