root権限なしでシェルからKDEセッションを適切に終了する方法


17

NX経由でマシン(KDEを備えたOpenSuse 11)にアクセスしています。

システムにキャプチャされているため、Alt-Ctrl-Delショートカットを使用できません。通常のログオフボタンは、KDEセッションを終了せずにNXセッションを終了するだけです。kdm restartroot権限がないため、電話をかけることができません。

他のワイルドな推測はのようでlogoutありexit、どちらも機能しません。1つ目はログインシェルにないことについて不平を言い、2つ目はコンソールを閉じるだけです。

私のshell-fuは弱いので、どんな助けでもありがたいです。



@MartinSchröder-ああ、良いキャッチ-それは本質的に同じ質問です。しかし、この質問に対するPaulの回答は、他の質問に対するGillesの回答よりも徹底的です。
kostja

回答:


30

dbusを介してKDEにログアウトコマンドを送信できます。KDEは(可能であれば)セッションを終了します。

qdbus org.kde.ksmserver /KSMServer logout 0 0 0

dbusは、アプリケーション同士の通信を可能にするメッセージングシステムであり、qdbusコマンドはdbusメッセージをアプリケーションに送信するためのユーティリティです。

アプリケーションはdbusに登録されksmserver、KDE の一部はセッションマネージャーです-ログインするユーザーを管理します。

したがってksmserver/KSMServerインターフェースにメッセージを送信し、ログアウトするように指示しています。送信するメッセージは、デスクトップのログアウトアイコンをクリックしたときにKSMに送信されるメッセージとまったく同じです。

3つのゼロはパラメーターであり、実行しているログアウトのタイプを変更できます。

最初のパラメータ:

  • 0 =確認を待ちません
  • 1 =確認を待つ(タイムアウトは30秒)

2番目のパラメーター:

  • -1 =アクションのプロンプト、デフォルトはシャットダウン(確認を待つ場合にのみ意味があります。)
  • 0 =ログアウト
  • 1 =再起動
  • 2 =シャットダウン

3番目のパラメーターは「いつ」パラメーターですが、その影響が明確ではありません。


このコマンドを実行する前に、DISPLAY環境変数を設定してください(ほとんどの:0場合は)。そうしないと文句が表示されます。
palswim 2014年

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.