<command>snapshot</command>,
<command>is-active</command>,
<command>is-failed</command>,
+ <command>is-enabled</command>,
+ <command>is-system-running</command>,
<command>enable</command> and
<command>disable</command>.</para>
</listitem>
<title>System Commands</title>
<variablelist>
+ <varlistentry>
+ <term><command>is-system-running</command></term>
+
+ <listitem>
+ <para>Checks whether the system is running. This returns
+ success when the system is fully up and running, meaning
+ not in startup, shutdown or maintainance mode. Failure is
+ returned otherwise. In addition, the current state is
+ printed in a short string to standard output. Use
+ <option>--quiet</option> to suppress output of this state
+ string.</para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><command>default</command></term>
<command>isolate default.target</command>.</para>
</listitem>
</varlistentry>
+
<varlistentry>
<term><command>rescue</command></term>
return !enabled;
}
+static int is_system_running(sd_bus *bus, char **args) {
+ _cleanup_free_ char *state = NULL;
+ int r;
+
+ r = sd_bus_get_property_string(
+ bus,
+ "org.freedesktop.systemd1",
+ "/org/freedesktop/systemd1",
+ "org.freedesktop.systemd1.Manager",
+ "SystemState",
+ NULL,
+ &state);
+ if (r < 0) {
+ if (!arg_quiet)
+ puts("unknown");
+ return 0;
+ }
+
+ if (!arg_quiet)
+ puts(state);
+
+ return streq(state, "running") ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
static int systemctl_help(void) {
pager_open_if_enabled();
" daemon-reload Reload systemd manager configuration\n"
" daemon-reexec Reexecute systemd manager\n\n"
"System Commands:\n"
+ " is-system-running Check whether system is fully running\n"
" default Enter system default mode\n"
" rescue Enter system rescue mode\n"
" emergency Enter system emergency mode\n"
{ "set-default", EQUAL, 2, set_default, NOBUS },
{ "get-default", EQUAL, 1, get_default, NOBUS },
{ "set-property", MORE, 3, set_property },
+ { "is-system-running", EQUAL, 1, is_system_running },
{}
}, *verb = verbs;