Отправить процесс в фоновый режим и отказаться от него и выйти из терминала (& и Конфликт оператора && в zsh)

Трудно ответить, так как в основном основано на мнениях. Вы также можете спросить, что лучше, LVM на LUKS или LUKS на LVM. Любой способ работает и может лучше соответствовать вашим конкретным требованиям.

Для независимых контейнеров LUKS LVM -> LUKS, безусловно, звучит интереснее, чем LUKS -> LVM, за счет незашифрованных метаданных LVM -и имен логических томов, размеров, времени создания и т. д. быть показательным.

Двойное шифрование, безусловно, приводит к снижению производительности (даже при использовании AES -NI ). Однако это все еще хорошо в некоторых случаях использования.Возможно, ваш ЦП очень простаивает (, что не редкость в настольных системах с избыточной производительностью ), поэтому вы не замечаете никакой разницы, или, возможно, ваши данные с двойным шифрованием просто не критичны для производительности.

Я, вероятно, в конечном итоге так и сделаю, у меня уже есть LUKS -> LVM, поэтому, если бы мне понадобился еще один уровень шифрования, это был бы LUKS -> LVM -> LUKS просто потому, что это проще и безопаснее. сделайте (просто создайте еще один LV и поместите на него LUKS )чем, скажем, уменьшите PV, чтобы освободить место для независимого раздела LUKS (что-то может пойти не так, когда вы выполняете подобные трюки ).

Однако я бы не стал добавлять к этому еще один уровень LVM, так как не совсем вижу смысл LVM внутри LVM. Так что LUKS -> LVM -> LUKS — это конец для меня.

Теоретически можно выполнить настройку двойного -шифрования без двойного -шифрования, т. е. устройство сопоставления устройств может позволить внутреннему контейнеру LUKS передавать свои данные на внешнее устройство напрямую, не шифруя их дважды. Устройство сопоставления устройств должно быть достаточно мощным, чтобы это произошло, но LVM и cryptsetup почти наверняка не будут поддерживать такие вещи.

1
12.04.2020, 19:34
2 ответа

&!и &&— две отдельные команды, поэтому вы не можете их комбинировать, поэтому

google-chrome-stable &! exit

— это, вероятно, то, что вам нужно.

Вы не можете получить код выхода, пока фоновая команда не завершит работу...

2
19.03.2021, 02:29

Статус выхода, возвращаемый вызывающей оболочке после запуска фонового задания, всегда ноль:

% bogus &
[1] 66712
% zsh: command not found: bogus

[1]  + exit 127   bogus
% echo $?
0

... и &!и &&являются терминаторами команд. Это означает, что ваша команда, вероятно, должна быть записана как

google-chrome-stable &! exit

или эквивалент

google-chrome-stable &!
exit

Вы можете получить реальный статус завершения фонового задания только с помощью waitс идентификатором задания (его нет, так как вы отказались от него )или идентификатором процесса (, но вы не может, потому что вы отреклись от этого процесса и, следовательно, это больше не процесс, который оболочка считает дочерним процессом; он удален из списка текущих заданий оболочки ).

Если бы вы не отказались от работы, может быть, через

google-chrome-stable & chrome_pid=$!

, то команда wait $chrome_pidв конечном итоге завершится со статусом завершения вашего фонового задания, но не раньше, чем это задание завершится, либо из-за невозможности запуска, либо из-за того, что вы каким-то образом закроете браузер.

1
19.03.2021, 02:29

Теги

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