mkfifo - Диск ввод-вывод на самом деле происходят?

Используйте следующее tmux.conf с copy-pipe в новых версиях tmux (1.8 +):

set -g mouse on
# To copy:
bind-key -n -t emacs-copy M-w copy-pipe "xclip -i -sel p -f | xclip -i -sel c "

# To paste:
bind-key -n C-y run "xclip -o | tmux load-buffer - ; tmux paste-buffer"
  1. prefix+[ в режим копии
  2. избранное содержание с мышью (содержит)
  3. M-w скопировать ту часть в системный буфер обмена
  4. C-y вставка это внутри tmux, C-v вставлять его в другом регулярном применении как веб-браузер.
10
23.05.2017, 15:39
2 ответа

Нет диска i/o (за исключением, возможно, навигации по файловой системе для открытия файла fifo)

Из man-страницы Linux fifo(7):

Специальный файл FIFO (названная труба) похож на трубу, за исключением того, что он доступен как часть файловой системы. [...] Когда процессы обмениваются данными. через FIFO, ядро передает все данные внутри, не записывая их. в файловую систему. Таким образом, специальный файл FIFO не имеет содержания на файловая система; запись файловой системы просто служит в качестве точки отсчета, поэтому что процессы могут получить доступ к конвейеру, используя имя в файловой системе.

10
27.01.2020, 20:02

На самом деле не имеет значения, является ли ваш результат резервным копированием диска или нет, потому что при наличии достаточного количества памяти он в любом случае будет кэшироваться, и не будет выполнен реальный ввод-вывод диска. Напротив, если память зарезервирована и не хватает, она может быть заменена на диск.

Если бы я догадался, я бы сказал, что канал на самом деле основан на памяти, но тогда это должно изменить только то, сохраняются ли данные из очереди между перезагрузками.

Вы должны позаботиться о том, чтобы, поскольку у вас несколько производителей, ваши записи должны быть атомарными, чтобы они не перемежались в очереди. Смотрите man 7 pipe для получения подробной информации о том, как гарантировать, что запись является атомарной.

3
27.01.2020, 20:02

Теги

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