私はこれに慣れておらず、dbus
デスクトップ環境に応じて端末からログアウトする別の方法を見ました。しかし、どのデスクトップ環境でもメッセージを使ってログアウトする方法があるのだろうかdbus
。
GNOMEでは:
dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1
KDEから:
dbus-send --print-reply --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout int32:0 int32:0 int32:0
すべてのデスクトップ環境で動作するコマンドはありますか(例:systemを使用dbus
)。
答え1
[設定] で、systemd
次の方法でセッションを強制終了できる必要があります。logind
dbus
相互作用:
busctl call org.freedesktop.login1 /org/freedesktop/login1 \
org.freedesktop.login1.Manager TerminateSession s \
$(loginctl show-user $UID --property=Sessions --value)
これはbusctl
vで導入されました。 - または実行できるすべての設定で、次の操作を行います。systemd
221
dbus-send --system --print-reply --dest=org.freedesktop.login1 \
/org/freedesktop/login1 'org.freedesktop.login1.Manager.TerminateSession' \
string:c2
セッションIDはどこにありますかc2
?
dbus-send --system --print-reply --dest=org.freedesktop.login1 \
/org/freedesktop/login1 'org.freedesktop.login1.Manager.ListSessions'
次の内容を返します。
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"
}
]