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
};
.....