qdbus
コマンドでセッションマネージャの
ksmserver プロセスへ信号を送ります。
qdbus
コマンドは、ディストリビューションによっては
/usr/bin/
下には無いかもしれません。
EPEL 8 の KDE5 では、
/usr/lib/qt5/bin/qdbus
(qt5-qttoolsパッケージ) に
配置されていました。
/usr/lib/qt5/bin/qdbus org.kde.ksmserver /KSMServer logout 0 0 2
/usr/lib/qt5/bin/qdbus org.kde.ksmserver /KSMServer logout 1 0 2
qdbus org.kde.ksmserver /KSMServer logout confirm sdtype sdmode
の説明書きは、plasma-workspace パッケージのソースコードの
libkworkspace/kworkspace.h
に埋まっています。
namespace KWorkSpace { /** * 1つ目の @p confirm パラメータ。ユーザに確認画面を出すかどうか * The possible values for the @p confirm parameter of requestShutDown(). */ enum ShutdownConfirm { /** * 訊ねるかどうかはユーザの設定値を使う */ ShutdownConfirmDefault = -1, /** * 何も訊かない */ ShutdownConfirmNo = 0, /** * 常に確認画面を出す */ ShutdownConfirmYes = 1 }; /** * 2つ目の @p sdtype パラメータ。ログアウトのみか、マシンの再起動・シャットダウンもするのか * The possible values for the @p sdtype parameter of requestShutDown(). */ enum ShutdownType { /** * 前回の選択肢を使う */ ShutdownTypeDefault = -1, /** * ログアウトのみ */ ShutdownTypeNone = 0, /** * 再起動 */ ShutdownTypeReboot = 1, /** * シャットダウン */ ShutdownTypeHalt = 2, /** * 使うな。ShutdownTypeNoneと同じ。 */ // KDE5: kill this ShutdownTypeLogout = 3 }; /** * 3つ目の @p sdmode パラメータ。他セッションがあった時にどうするか * The possible values for the @p sdmode parameter of requestShutDown(). */ // KDE5 ではあまり意味ないかも // KDE5: this seems fairly useless enum ShutdownMode { /** * 前回の選択肢を使用 */ ShutdownModeDefault = -1, /** * アクティブなセッションがすべて終了したら、シャットダウンもしくは再起動を行う */ ShutdownModeSchedule = 0, /** * セッションが終了していたら、シャットダウンを行う */ ShutdownModeTryNow = 1, /** * 強制終了。アクティブなセッションはすべて終了させる * (訳注:コマンドラインから行いたいときはこれが普通かと) */ ShutdownModeForceNow = 2, /** * 生きているセッションがあったら、ユーザにどうするか訊ねる */ ShutdownModeInteractive = 3 }; .....