Как запустить другие службы systemd в определенной последовательности, запуская одну службу?

Время от времени мне нравится вызов sed :с использованиемACCOUNT_ADDR=1234:

sed -n -e '
    x
    $ i\
"'"$ACCOUNT_ADDR"'": {"balance":0},
    2,$ p
    $ { x; p }
' file
 "accounts": {
    "0x0000000000000000000000000000000000000008": { "builtin": { "name": "alt_bn128_pairing", "activate_at": "0x0", "pricing": { "alt_bn128_pairing": { "base": 100000, "pair": 80000 } } } },
"1234": {"balance":0},
    "0x00Ea169ce7e0992960D3BdE6F5D539C955316432": { "balance": "1606938044258990275541962092341162602522202993782792835301376" }
 }

При этом используется x, чтобы спрятать текущую строку в пространство хранения, чтобы она стала «предыдущей» строкой в ​​следующем цикле.

Как упоминалось ранее, используйте sed -i, чтобы сохранить изменения в -месте

.

Вы можете получить тот же результат, перевернув файл и используя более простую команду sed:

temp=$(mktemp)
tac file | sed '2a\
"'"$ACCOUNT_ADDR"'": {"balance":0},
' | tac > "$temp" && mv "$temp" file
0
04.07.2020, 13:29
1 ответ

На самом деле нет способа дать systemd список и сказать «запустить их в этом порядке». Вместо этого вы должны указать для каждой службы, в каком порядке она должна запускаться.

Таким образом, в ваш test2.serviceвы должны включитьAfter=test1.service(или вы можете сделать это наоборот, а в test1.serviceвключитьBefore=test2.service)и сделать то же самое для каждой службы, которая должна запускаться в определенном порядке, используя Beforeили After, чтобы указать эти зависимости.

0
18.03.2021, 23:22

Теги

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