Чистое выключение, запуск синхронизации после umount

Вы передаете вывод vagrant ssh-config на стандартный ввод команды ssh . К тому времени, когда ssh запускает удаленную команду и подключает удаленный стандартный ввод к локальному стандартному вводу, конец файла уже достигнут. Таким образом, удаленная оболочка видит конец файла на своем стандартном вводе и немедленно завершает работу.

Обычно вы должны передать файл конфигурации в другой файловый дескриптор:

ssh -F <(vagrant ssh-config) default

, но это тоже не работает, потому что ssh закрывает нестандартные файловые дескрипторы перед чтением своего файла конфигурации. Поэтому вам нужно передать фактическое имя файла процессу ssh . Это может быть именованный канал, если вы не хотите сохранять вывод vagrant ssh-config :

mkfifo fifo
vagrant ssh-config >fifo &
ssh -F fifo …
rm fifo

С оболочкой zsh (доступной по умолчанию в macOS) вы можно использовать форму подстановки команд = (...) , которая использует временный файл вместо канала, доступ к которому осуществляется через / dev / fd / x :

ssh -F =(vagrant ssh-config) …

¹ за исключением систем без поддержки / dev / fd / x , где подстановка процессов реализована с использованием именованных каналов

2
17.10.2017, 18:12
1 ответ

Нет, нет смысла запускать syncпосле (успешного)umount.

umount уже синхронизирует все ожидающие записи в файловую систему. Команда sync синхронизирует кэшированные данные файловой системы смонтированных файловых систем.

Устройство шифрования dm -, настроенное с помощью LUKS, в настоящее время корректно проходит через команды сброса (, ср. cryptsetup FAQ, пункт 2.13Если я сопоставляю журналируемую файловую систему с помощью dm -crypt/LUKS, предоставляет ли она обычные гарантии транзакций?).

0
27.01.2020, 22:18

Теги

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