Если у вас есть контроль над зависимостями (т. Е. Они являются вашим программным обеспечением), заставьте их установить дополнительный файл для рассматриваемого файла модуля. То есть, допустим, у вас есть foo.service
, который должен зависеть от bar.service || баз.сервис
.
Затем пакет bar
может установить файл /usr/lib/systemd/system/foo.service.d/50-bar-baz.conf
с таким содержимым:
[Unit]
Requires=bar.service
Аналогично для пакета baz
.
Если у вас нет контроля над зависимостями, просто создайте сценарий «диспетчера», который проверяет наличие файлов модуля, а затем выполняет exec systemctl start
для выбранного файла модуля. Затем напишите отдельный модуль и потребуйте / после него от основного модуля:
[Unit]
# inexistent unit names are ignored here
After=bar.service baz.service
[Service]
Type=oneshot
ExecStart=/path/to/dispatcher
Нет, в лучшем случае вы можете сделать это без записи распакованного файла на диск, но вам нужно распаковать его, чтобы отредактировать.
zcat in_file.gz | tr -d '()' | gzip -c >out_file.gz