Настройка запуска службы systemd при перезагрузке другой

Если вы ищете UUID устройства, смонтированного как /bootв работающей системе, чистый способ — findmntизutil-linux:

$ findmnt --output=UUID --noheadings --target=/boot 
2b8c6b62-0f68-47d1-a5e7-3e56acce98ac

При использовании этих -поясняющих опций он выводит только UUID. Это также избавит вас от необходимости выяснять, какое устройство является релевантным.

Если вы просто ищете UUID известного вам устройства, независимо от того, смонтировано оно или нет, вы можете использовать blkid, как указано в ответе Энди Далтона:

$ sudo blkid -s UUID -o value /dev/vda1 
2b8c6b62-0f68-47d1-a5e7-3e56acce98ac

Опции -s tagи -o formatограничивают вывод только значением тега UUID.

Затем вы можете добавить UUID к GRUB_CMDLINE_LINUXс помощью команды как:

sed -i.bkp 's/^\([[:blank:]]*GRUB_CMDLINE_LINUX=".*\)\(".*\)$/\1 fips=1 boot=UUID='"$newuuid"'\2/' /etc/default/grub

Что предполагает синтаксис опции -iGNU sed:, он отредактирует файл в -месте, а также создаст файл резервной копии grub.bkp.
Обратите внимание, что мы не проверяем наличие параметра командной строки boot; мы просто добавляемfips=1newuuidперед вторым ", таким образом, предполагая, что ваша текущая командная строка заключена в двойные кавычки и не содержит двойных кавычек.

2
08.07.2020, 22:41
1 ответ

Если в SystemD нет «хорошего» решения, вы можете сделать перезагрузку частью файла модуля. Просто добавьте к существующей записи ExecReloadеще одну запись :

.
ExecReload=systemctl restart B
1
18.03.2021, 23:21

Теги

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