GNU/Linux >> Linux の 問題 >  >> Linux

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

dbus を介して 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 番目のパラメーターは「いつ」パラメーターですが、その影響が何であるかは明確ではありません。


受け入れられた答えは 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

Linux
  1. LinuxでユーザーのSudo権限を設定する方法

  2. シェルスクリプトでルート権限を削除する方法は?

  3. ルートユーザーからNologinシェルを持つ別のユーザーに切り替える方法は?

  1. シェルからPythonスクリプトを実行する方法

  2. マウスなしで xterm からテキストをコピーするにはどうすればよいですか?

  3. PHPからシェルコマンドが存在するかどうかを確認する方法

  1. Sudo特権なしでプログラムをローカルにインストールする方法は?

  2. root 権限なしで Python で raw ソケットを作成する

  3. シェルから Vim コマンドを実行するには?