Замена отказавшего диска в пуле ZFS

используя только один модуль

Поместите TimeoutStartSec=infinityв файл модуля и настройте ExecStart=с помощью сценария, подобного

#! /bin/bash

TIMEOUT=1000

test -f /path/to/testfile && sleep "$TIMEOUT"

exec /path/to/service/binary plus arguments

Это невозможно сделать (полезным способом ) с ExecStartPre=, см. man systemd.service:

Обратите внимание, что ExecStartPre= нельзя использовать для запуска долго выполняющихся процессов. Все процессы, разветвленные процессами, вызванными через ExecStartPre=, будут уничтожены до запуска следующего сервисного процесса.

использование вспомогательного модуля

Если вы хотите сделать это только с помощью systemd, вы можете создать вспомогательный модуль check_and_wait.target. Этот получает записи

# check_and_wait.target
[Unit]
TimeoutStartSec=infinity
ConditionPathExists=/path/to/testfile
ExecStart=/usr/bin/sleep 1000
RemainAfterExit=yes

Основной блок получает следующие записи:

Wants=check_and_wait.target
After=check_and_wait.target
0
01.04.2016, 14:52
0 ответов

Теги

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