интерфейс D-Bus системы systemd  (The D-Bus interface of systemd)
  
UNIT OBJECTS
node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
             interface org.freedesktop.systemd1.Unit {
               methods:
                 Start(in  s mode,
                       out o job);
                 Stop(in  s mode,
                      out o job);
                 Reload(in  s mode,
                        out o job);
                 Restart(in  s mode,
                         out o job);
                 TryRestart(in  s mode,
                            out o job);
                 ReloadOrRestart(in  s mode,
                                 out o job);
                 ReloadOrTryRestart(in  s mode,
                                    out o job);
                 EnqueueJob(in  s job_type,
                            in  s job_mode,
                            out u job_id,
                            out o job_path,
                            out s unit_id,
                            out o unit_path,
                            out s job_type,
                            out a(uosos) affected_jobs);
                 Kill(in  s whom,
                      in  i signal);
                 ResetFailed();
                 SetProperties(in  b runtime,
                               in  a(sv) properties);
                 Ref();
                 Unref();
                 Clean(in  as mask);
                 Freeze();
                 Thaw();
               properties:
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s Id = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Names = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
                 readonly s Following = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Requires = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Requisite = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Wants = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as BindsTo = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as PartOf = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as RequiredBy = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as RequisiteOf = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as WantedBy = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as BoundBy = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as ConsistsOf = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Conflicts = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as ConflictedBy = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Before = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as After = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as OnFailure = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as OnFailureOf = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as OnSuccess = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as OnSuccessOf = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Triggers = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as TriggeredBy = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as PropagatesReloadTo = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as ReloadPropagatedFrom = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as PropagatesStopTo = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as StopPropagatedFrom = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as JoinsNamespaceOf = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as SliceOf = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as RequiresMountsFor = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as Documentation = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s Description = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s LoadState = '...';
                 readonly s ActiveState = '...';
                 readonly s FreezerState = '...';
                 readonly s SubState = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s FragmentPath = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s SourcePath = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as DropInPaths = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
                 readonly s UnitFileState = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
                 readonly s UnitFilePreset = '...';
                 readonly t StateChangeTimestamp = ...;
                 readonly t StateChangeTimestampMonotonic = ...;
                 readonly t InactiveExitTimestamp = ...;
                 readonly t InactiveExitTimestampMonotonic = ...;
                 readonly t ActiveEnterTimestamp = ...;
                 readonly t ActiveEnterTimestampMonotonic = ...;
                 readonly t ActiveExitTimestamp = ...;
                 readonly t ActiveExitTimestampMonotonic = ...;
                 readonly t InactiveEnterTimestamp = ...;
                 readonly t InactiveEnterTimestampMonotonic = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b CanStart = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b CanStop = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b CanReload = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b CanIsolate = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly as CanClean = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b CanFreeze = ...;
                 readonly (uo) Job = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b StopWhenUnneeded = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b RefuseManualStart = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b RefuseManualStop = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b AllowIsolate = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b DefaultDependencies = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s OnSuccessJobMode = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s OnFailureJobMode = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b IgnoreOnIsolate = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b NeedDaemonReload = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
                 readonly as Markers = ['...', ...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly t JobTimeoutUSec = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly t JobRunningTimeoutUSec = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s JobTimeoutAction = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s JobTimeoutRebootArgument = '...';
                 readonly b ConditionResult = ...;
                 readonly b AssertResult = ...;
                 readonly t ConditionTimestamp = ...;
                 readonly t ConditionTimestampMonotonic = ...;
                 readonly t AssertTimestamp = ...;
                 readonly t AssertTimestampMonotonic = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
                 readonly a(sbbsi) Conditions = [...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("invalidates")
                 readonly a(sbbsi) Asserts = [...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly (ss) LoadError = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b Transient = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly b Perpetual = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly t StartLimitIntervalUSec = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly u StartLimitBurst = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s StartLimitAction = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s FailureAction = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly i FailureActionExitStatus = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s SuccessAction = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly i SuccessActionExitStatus = ...;
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s RebootArgument = '...';
                 readonly ay InvocationID = [...];
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
                 readonly s CollectMode = '...';
                 @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
                 readonly as Refs = ['...', ...];
             };
             interface org.freedesktop.DBus.Peer { ... };
             interface org.freedesktop.DBus.Introspectable { ... };
             interface org.freedesktop.DBus.Properties { ... };
           };
   Methods
       Start(), Stop(), Reload(), Restart(), TryRestart(),
       ReloadOrRestart(), ReloadOrTryRestart(), Kill(), ResetFailed(),
       and SetProperties() implement the same operation as the
       respective methods on the Manager object (see above). However,
       these methods operate on the unit object and hence do not take a
       unit name parameter. Invoking the methods directly on the Manager
       object has the advantage of not requiring a GetUnit() call to get
       the unit object for a specific unit name. Calling the methods on
       the Manager object is hence a round trip optimization.
   Properties
       Id contains the primary name of the unit.
       Names contains all names of the unit, including the primary name
       that is also exposed in Id.
       Following either contains the empty string or contains the name
       of another unit that this unit follows in state. This is used for
       some device units which reflect the unit state machine of another
       unit, and which other unit this is might possibly change.
       Requires, RequiresOverridable, Requisite, RequisiteOverridable,
       Wants, BindsTo, RequiredBy, RequiredByOverridable, WantedBy,
       BoundBy, Conflicts, ConflictedBy, Before, After, OnFailure,
       Triggers, TriggeredBy, PropagatesReloadTo, and RequiresMountsFor
       contain arrays which encode the dependencies and their inverse
       dependencies (where this applies) as configured in the unit file
       or determined automatically.
       Description contains the human readable description string for
       the unit.
       SourcePath contains the path to a configuration file this unit is
       automatically generated from in case it is not a native unit (in
       which case it contains the empty string). For example, all mount
       units generated from /etc/fstab have this field set to
       /etc/fstab.
       Documentation contains a string array with URLs of documentation
       for this unit.
       LoadState contains a state value that reflects whether the
       configuration file of this unit has been loaded. The following
       states are currently defined: "loaded", "error", and "masked".
       "loaded" indicates that the configuration was successfully
       loaded.  "error" indicates that the configuration failed to load.
       The LoadError field (see below) contains information about the
       cause of this failure.  "masked" indicates that the unit is
       currently masked out (i.e. symlinked to /dev/null or empty). Note
       that the LoadState is fully orthogonal to the ActiveState (see
       below) as units without valid loaded configuration might be
       active (because configuration might have been reloaded at a time
       where a unit was already active).
       ActiveState contains a state value that reflects whether the unit
       is currently active or not. The following states are currently
       defined: "active", "reloading", "inactive", "failed",
       "activating", and "deactivating".  "active" indicates that unit
       is active (obviously...).  "reloading" indicates that the unit is
       active and currently reloading its configuration.  "inactive"
       indicates that it is inactive and the previous run was successful
       or no previous run has taken place yet.  "failed" indicates that
       it is inactive and the previous run was not successful (more
       information about the reason for this is available on the unit
       type specific interfaces, for example for services in the Result
       property, see below).  "activating" indicates that the unit has
       previously been inactive but is currently in the process of
       entering an active state. Conversely "deactivating" indicates
       that the unit is currently in the process of deactivation.
       SubState encodes states of the same state machine that
       ActiveState covers, but knows more fine-grained states that are
       unit-type-specific. Where ActiveState only covers six high-level
       states, SubState covers possibly many more low-level
       unit-type-specific states that are mapped to the six high-level
       states. Note that multiple low-level states might map to the same
       high-level state, but not vice versa. Not all high-level states
       have low-level counterparts on all unit types. At this point the
       low-level states are not documented here, and are more likely to
       be extended later on than the common high-level states explained
       above.
       FragmentPath contains the unit file path this unit was read from,
       if there is one (if not, it contains the empty string).
       UnitFileState encodes the install state of the unit file of
       FragmentPath. It currently knows the following states: "enabled",
       "enabled-runtime", "linked", "linked-runtime", "masked",
       "masked-runtime", "static", "disabled", and "invalid".  "enabled"
       indicates that a unit file is permanently enabled.
       "enable-runtime" indicates the unit file is only temporarily
       enabled and will no longer be enabled after a reboot (that means,
       it is enabled via /run/ symlinks, rather than /etc/).  "linked"
       indicates that a unit is linked into /etc/ permanently.
       "linked-runtime" indicates that a unit is linked into /run/
       temporarily (until the next reboot).  "masked" indicates that the
       unit file is masked permanently.  "masked-runtime" indicates that
       it is masked in /run/ temporarily (until the next reboot).
       "static" indicates that the unit is statically enabled, i.e.
       always enabled and doesn't need to be enabled explicitly.
       "invalid" indicates that it could not be determined whether the
       unit file is enabled.
       InactiveExitTimestamp, InactiveExitTimestampMonotonic,
       ActiveEnterTimestamp, ActiveEnterTimestampMonotonic,
       ActiveExitTimestamp, ActiveExitTimestampMonotonic,
       InactiveEnterTimestamp, and InactiveEnterTimestampMonotonic
       contain CLOCK_REALTIME and CLOCK_MONOTONIC 64-bit microsecond
       timestamps of the last time a unit left the inactive state,
       entered the active state, exited the active state, or entered an
       inactive state. These are the points in time where the unit
       transitioned "inactive"/"failed" → "activating", "activating" →
       "active", "active" → "deactivating", and finally "deactivating" →
       "inactive"/"failed". The fields are 0 in case such a transition
       has not yet been recorded on this boot.
       CanStart, CanStop, and CanReload encode as booleans whether the
       unit supports the start, stop or reload operations. Even if a
       unit supports such an operation, the client might not necessary
       have the necessary privileges to execute them.
       CanIsolate encodes as a boolean whether the unit may be started
       in isolation mode.
       Job encodes the job ID and job object path of the job currently
       scheduled or executed for this unit, if there is any. If no job
       is scheduled or executed, the job id field will be 0.
       StopWhenUnneeded, RefuseManualStart, RefuseManualStop,
       AllowIsolate, DefaultDependencies, OnFailureIsolate,
       IgnoreOnIsolate, IgnoreOnSnapshot map directly to the
       corresponding configuration booleans in the unit file.
       DefaultControlGroup contains the main control group of this unit
       as a string. This refers to a group in systemd's own
       "name=systemd" hierarchy, which systemd uses to watch and
       manipulate the unit and all its processes.
       NeedDaemonReload is a boolean that indicates whether the
       configuration file this unit is loaded from (i.e.  FragmentPath
       or SourcePath) has changed since the configuration was read and
       hence whether a configuration reload is recommended.
       Markers is an array of string flags that can be set using
       SetUnitProperties() to indicate that the service should be
       reloaded or restarted. Currently known values are "needs-restart"
       and "needs-reload". Package scripts may use the first to mark
       units for later restart when a new version of the package is
       installed. Configuration management scripts may use the second to
       mark units for a later reload when the configuration is adjusted.
       Those flags are not set by the manager, except to unset as
       appropriate when when the unit is stopped, restarted, or
       reloaded.
       JobTimeoutUSec maps directly to the corresponding configuration
       setting in the unit file.
       ConditionTimestamp and ConditionTimestampMonotonic contain the
       CLOCK_REALTIME/CLOCK_MONOTONIC microsecond timestamps of the last
       time the configured conditions of the unit have been checked or 0
       if they have never been checked. Conditions are checked when a
       unit is requested to start.
       ConditionResult contains the condition result of the last time
       the configured conditions of this unit were checked.
       Conditions contains all configured conditions of the unit. For
       each condition, five fields are given: condition type (e.g.
       ConditionPathExists), whether the condition is a trigger
       condition, whether the condition is reversed, the right hand side
       of the condition (e.g. the path in case of ConditionPathExists),
       and the status. The status can be 0, in which case the condition
       hasn't been checked yet, a positive value, in which case the
       condition passed, or a negative value, in which case the
       condition failed. Currently only 0, +1, and -1 are used, but
       additional values may be used in the future, retaining the
       meaning of zero/positive/negative values.
       LoadError contains a pair of strings. If the unit failed to load
       (as encoded in LoadState, see above), then this will include a
       D-Bus error pair consisting of the error ID and an explanatory
       human readable string of what happened. If it loaded
       successfully, this will be a pair of empty strings.
       Transient contains a boolean that indicates whether the unit was
       created as a transient unit (i.e. via CreateTransientUnit() on
       the manager object).
   Security
       Similarly to methods on the Manager object, read-only access is
       allowed for everyone. All operations are allowed for clients with
       the CAP_SYS_ADMIN capability or when the
       org.freedesktop.systemd1.manage-units privilege is granted by
       polkit.