Em systemd
setups, você deve ser capaz de encerrar uma sessão através de logind
. dbus
interface:
dbus-send --system --print-reply --dest=org.freedesktop.login1 \
/org/freedesktop/login1 'org.freedesktop.login1.Manager.TerminateSession' \
string:c2
em que c2
é a sequência de ID da sessão; para obter o ID da sessão que você pode executar
loginctl
SESSION UID USER SEAT
c1 120 gdm seat0
c2 1000 don seat0
2 sessions listed
ou, se preferir, também via dbus
interface:
dbus-send --system --print-reply --dest=org.freedesktop.login1 \
/org/freedesktop/login1 'org.freedesktop.login1.Manager.ListSessions'
que retorna algo como
array [
struct {
string "c1"
uint32 120
string "gdm"
string "seat0"
object path "/org/freedesktop/login1/session/c1"
}
struct {
string "c2"
uint32 1000
string "don"
string "seat0"
object path "/org/freedesktop/login1/session/c2"
}
]