двунаправленная связь socat с пользовательской -определяемой пользователем функцией bash

Файл initramfs initramfs-5.0.9-301.fc30.x86_64-nouveau.imgявно больше не нужен, так как у вас больше нет соответствующего файла ядра.

Поскольку вам нужно всего лишь 34 МБ дополнительного места, этого может быть достаточно.

Если это не освобождает достаточно места, а ваш текущий драйвер графического процессора в порядке, вы также можете рассмотреть возможность удаления initramfs-5.2.15-200.fc30.x86_64-nouveau.img, поскольку он выглядит как резервная копия, вероятно, до установки проприетарного драйвера графического процессора NVidia.

0
15.11.2020, 17:27
1 ответ

При использовании {fd}> fileзначение $fdбудет больше 9.

С помощью system:shell-codesocatвызывает shдля интерпретации этого кода оболочки.

shреализации не обязаны поддерживать fd выше 9 в своих операторах перенаправления. Такие реализации, как dashили mksh, этого не делают. Также обратите внимание, что ksh93 (одна из трех оболочек с zsh и bash, которые поддерживают этот синтаксис )помечает fd, полученный с помощью exec {fd}> file, с флагом close -on -exec, поэтому он не будет унаследован. по socatтам.

Итак, здесь вы хотите использовать fd ниже 10:

exec 4> >(my_custom_function)
socat tcp-listen:10000,reuseaddr,fork system:"head -n1>&4;echo EXIT;exit"

Или вызовите оболочку, которая, как вы знаете, поддерживает fds выше 9, например zsh:

exec {fd}> >(my_custom_function)
socat tcp-listen:10000,reuseaddr,fork "exec:'zsh -c \"head -n1>&$fd;echo EXIT;exit\"'"

(не изksh93).

1
18.03.2021, 22:49

Теги

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