NX経由でマシン(KDEを備えたOpenSuse 11)にアクセスしています。
システムにキャプチャされているため、Alt-Ctrl-Delショートカットを使用できません。通常のログオフボタンは、KDEセッションを終了せずにNXセッションを終了するだけです。 root権限がないため、kdm restart
を呼び出すことができません。
logout
やexit
などの他のワイルドな推測も機能しません。最初の推測はログインシェルに存在しないという不満があり、2番目の推測はコンソールを閉じるだけです。
私のShell-fuは弱いので、どんな助けでもありがたいです。
Dbusを介してKDEにログアウトコマンドを送信できます。KDEは(可能であれば)セッションを終了します。
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
dbusは、アプリケーションが相互に通信できるようにするメッセージングシステムであり、qdbus
コマンドは、dbusメッセージをアプリケーションに送信するためのユーティリティです。
アプリケーションはdbusに登録され、KDEのksmserver
部分はセッションマネージャーです。ログインするユーザーを管理します。
したがって、ksmserver
へのメッセージを/KSMServer
インターフェースに送信し、ログアウトするように指示しています。送信するメッセージは、デスクトップのログアウトアイコンをクリックしたときにKSMに送信されるメッセージとまったく同じです。
3つのゼロはパラメーターであり、実行しているログアウトのタイプを変更できます。
最初のパラメータ:
2番目のパラメーター:
3番目のパラメーターは「いつ」パラメーターですが、その影響が明確ではありません。
受け入れられた答えはKDE5に固有のソリューションであり、より一般的なアプローチは
loginctl list-sessions
loginctl terminate-session <id>
または
loginctl terminate-user <username>
より多くの可能なコマンドがあります:
Session Commands:
list-sessions List sessions
session-status [ID...] Show session status
show-session [ID...] Show properties of sessions or the manager
activate [ID] Activate a session
lock-session [ID...] Screen lock one or more sessions
unlock-session [ID...] Screen unlock one or more sessions
lock-sessions Screen lock all current sessions
unlock-sessions Screen unlock all current sessions
terminate-session ID... Terminate one or more sessions
kill-session ID... Send signal to processes of a session
User Commands:
list-users List users
user-status [USER...] Show user status
show-user [USER...] Show properties of users or the manager
enable-linger [USER...] Enable linger state of one or more users
disable-linger [USER...] Disable linger state of one or more users
terminate-user USER... Terminate all sessions of one or more users
kill-user USER... Send signal to processes of a user
Seat Commands:
list-seats List seats
seat-status [NAME...] Show seat status
show-seat [NAME...] Show properties of seats or the manager
attach NAME DEVICE... Attach one or more devices to a seat
flush-devices Flush all device associations
terminate-seat NAME... Terminate all sessions on one or more seats