📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 138行目: | 138行目: | ||
// 取得したsmb.serviceのユニットパスを使用して、smb.serviceの開始状態を取得 | // 取得したsmb.serviceのユニットパスを使用して、smb.serviceの開始状態を取得 | ||
/// D-Busサービス名は、"org.freedesktop.systemd1" | |||
/// D-Busオブジェクト名は、smb.serviceのユニットパス | |||
auto unitProxy = sdbus::createProxy(systemdProxy.getConnection(), std::move(sdbus::ServiceName{"org.freedesktop.systemd1"}), unitPath); | auto unitProxy = sdbus::createProxy(systemdProxy.getConnection(), std::move(sdbus::ServiceName{"org.freedesktop.systemd1"}), unitPath); | ||
/// D-Busインターフェース名は、"org.freedesktop.DBus.Properties" | |||
/// D-Busインターフェースメソッド名は、"Get" | |||
auto getProperty = unitProxy->createMethodCall(sdbus::InterfaceName{"org.freedesktop.DBus.Properties"}, sdbus::MethodName{"Get"}); | auto getProperty = unitProxy->createMethodCall(sdbus::InterfaceName{"org.freedesktop.DBus.Properties"}, sdbus::MethodName{"Get"}); | ||
/// D-Busインターフェースメソッド"Get"の引数を指定 | |||
getProperty << "org.freedesktop.systemd1.Unit" << "ActiveState"; | getProperty << "org.freedesktop.systemd1.Unit" << "ActiveState"; | ||
/// D-Busインターフェースメソッドを実行して、戻り値を取得 | |||
auto propertyReply = unitProxy->callMethod(getProperty); | auto propertyReply = unitProxy->callMethod(getProperty); | ||
/// 戻り値は文字列型であるため、文字列型に変換 | |||
/// smb.serviceが正常に開始されている場合は、文字列は"active"となる | |||
sdbus::Variant variant; | sdbus::Variant variant; | ||
propertyReply >> variant; | propertyReply >> variant; | ||