Если ls -tr | head -3
дает вам 3 правильные папки, которые нужно сохранить,
затем ls -tr | tail -n +4
предоставит вам все остальные папки (он пропускает 3 первые строки).
#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
для просмотра служб, которые связаны с ним в той или иной форме.