systemd запускает службу, только если другая служба работает без ошибок.

Если ls -tr | head -3 дает вам 3 правильные папки, которые нужно сохранить, затем ls -tr | tail -n +4 предоставит вам все остальные папки (он пропускает 3 первые строки).

3
20.07.2017, 19:10
2 ответа

Requires=y After=deben estar en la sección [Unit]

0
27.01.2020, 21:35
#echo-date-0.service
[Unit]
Description=

[Service]
Type=oneshot
## Stay alive for other services to acknowledge 
RemainAfterExit=yes
ExecStart=/home/user/bash/echo-date-0.sh

[Install]
WantedBy=multi-user.target



#echo-date-1.service
[Unit]
Description=
Requires=echo-date-0.service
After=echo-date-0.service
## A unit that must be in an active non-erroring state
## and combos great with After=
BindsTo=echo-date-0.service

[Service]
ExecStart=/home/user/bash/echo-date-1.sh

[Install]
WantedBy=multi-user.target

Джесси _b был, по крайней мере для меня, правильным в упоминании BindsTo=в systemd.unix было бы полезно.

И Бигон прав, утверждая, что раздел [Unit]должен иметь Requires=и After=.

Фактически echo-date-0.service, в приведенном выше (и, надеюсь, функционирующем )примере, остается активным как служба (, поэтому для сброса состояния )требуется запуск systemctl stop echo-date-0.service, но, настроив все таким образом и объединив After=и BindsTo=в echo-date-1.service, указывающих на службу, которая не должна ошибаться, этот должен достичь того, о чем здесь просит OP.

В этом случае нужно иметь возможность запускать systemctl list-dependencies --before <service/trigger>на echo-date-0.serviceдля просмотра служб, которые связаны с ним в той или иной форме.

2
27.01.2020, 21:35

Теги

Похожие вопросы