After=
não implica um relacionamento de dependência (somente pedido), você pode estabelecer dependência com a diretiva Requires=
ou Wants=
.
Requires=
Configures requirement dependencies on other units. If this unit gets activated, the units listed here will be activated as well. If one of the other units gets deactivated or its activation fails, this unit will be deactivated. This option may be specified more than once or multiple space-separated units may be specified in one option in which case requirement dependencies for all listed names will be created. Note that requirement dependencies do not influence the order in which services are started or stopped. This has to be configured independently with theAfter=
orBefore=
options. If a unitfoo.service
requires a unit bar.service as configured with Requires= and no ordering is configured withAfter=
orBefore=
, then both units will be started simultaneously and without any delay between them iffoo.service
is activated. Often, it is a better choice to useWants=
instead ofRequires=
in order to achieve a system that is more robust when dealing with failing services.Note that this dependency type does not imply that the other unit always has to be in active state when this unit is running. Specifically: failing condition checks (such as
ConditionPathExists=
,ConditionPathExists=
, … — see below) do not cause the start job of a unit with aRequires=
dependency on it to fail. Also, some unit types may deactivate on their own (for example, a service process may decide to exit cleanly, or a device may be unplugged by the user), which is not propagated to units having aRequires=
dependency. Use theBindsTo=
dependency type together withAfter=
to ensure that a unit may never be in active state without a specific other unit also in active state (see below).Note that dependencies of this type may also be configured outside of the unit configuration file by adding a symlink to a
.requires/
directory accompanying the unit file. For details, see above.Wants=
A weaker version ofRequires=
. Units listed in this option will be started if the configuring unit is. However, if the listed units fail to start or cannot be added to the transaction, this has no impact on the validity of the transaction as a whole. This is the recommended way to hook start-up of one unit to the start-up of another unit.Note that dependencies of this type may also be configured outside of the unit configuration file by adding symlinks to a
.wants/
directory accompanying the unit file. For details, see above.
Ref: link