Las reglas de udev para DRBD provienen de las utilidades de drbd -. ¿Qué versión de DRBD utils tienes instalada?
La versión más reciente, 9.2.2, incluye reglas adicionales con un comentario de los desarrolladores que parece que podría solucionar su problema:
# This file contains the rules to create named DRBD devices.
SUBSYSTEM!="block", GOTO="drbd_end"
KERNEL!="drbd*", GOTO="drbd_end"
IMPORT{program}="@sbindir@/drbdadm sh-udev minor-%m"
# Use symlink from the environment if available
# some udev version thought it was a good idea to change a long established
# default of string_escape=none to string_escape=replace :-/
# therefore, recent enough drbdadm will no longer export space separated lists.
ENV{SYMLINK_BY_DISK}!="", SYMLINK+="$env{SYMLINK_BY_DISK}"
ENV{SYMLINK_BY_RES}!="", SYMLINK+="$env{SYMLINK_BY_RES}", GOTO="have_symlink"
ENV{SYMLINK}!="", OPTIONS+="string_escape=none", SYMLINK="$env{SYMLINK}", GOTO="have_symlink"
# Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
ENV{DISK}!="", SYMLINK+="drbd/by-disk/$env{DISK}"
ENV{RESOURCE}!="", SYMLINK+="drbd/by-res/$env{RESOURCE}"
LABEL="have_symlink"
ENV{DEVICE}=="drbd_?*", SYMLINK+="$env{DEVICE}"
LABEL="drbd_end"
Это просто в оболочках, поддерживающих подстановку процессов , например. баш
$ echo foo | tee >(xsel)
foo
$ xsel -o
foo
В противном случае вы можете использовать FIFO (, хотя это не удобно)
$ mkfifo _myfifo
$ xsel < _myfifo &
$ echo bar | tee _myfifo
bar
$ xsel -o
bar
[1] + Done xsel 0<_myfifo
$
Прямым аналогом «тройника для команд» является командаpee
от moreutils(tee
, но с пайпами). Его аргументы используются как команды для запуска, а не как пути, и они получают входные данные, а не записываются в файл. Все команды получают стандартный ввод, который вы передали в pee
, как свои собственные.
Используя pee
, вы можете получить желаемый результат, сказав ему запустить как xsel
, так и cat
с входными данными.
echo foo | pee xsel cat
Существует дополнительный процесс cat
для выполнения вывода, что на самом деле не является проблемой для вашего варианта использования, но может быть менее идеальным в других случаях. Это работает с любой оболочкой, в отличие от подстановки процессов, но, конечно, требует установки дополнительного (вероятно, менее распространенного) инструмента.
Вы можете давать более сложные команды, заключая их в кавычки: pee "xsel --display :1" cat
. Они запускаются с sh
, так что вы должны быть осторожны с метасимволами оболочки.