Я бы предложил вам использовать интерфейс Bonding. Bonding interface позволяет добавлять интерфейсы в bond, устанавливать один интерфейс как основной и настраивать их как active-backup.
Сначала установите пакет ifenslave, остановите работу сети и загрузите модуль ядра bonding:
sudo apt-get install ifenslave
sudo stop networking
sudo modprobe bonding
Обновите конфигурацию интерфейса в файле /etc/network/interfaces:
auto bond0
iface bond0 inet dhcp
bond-slaves none
bond-mode active-backup
bond-miimon 100
auto eth0
iface eth0 inet dhcp
bond-master bond0
bond-primary eth0
auto eth1
iface eth1 inet dhcp
bond-master bond0
Это создаст интерфейс bonding bond0, установленный как active-backup, и настроит интерфейсы eth0 и eth1 как slave для bond0. Bond-primary тег настраивает eth0 как основной интерфейс и оставляет eth1 в качестве резервного.
Затем перезапустите сеть:
sudo start networking
Вы также можете посмотреть это руководство о bonding в Ubuntu https://help.ubuntu.com/community/UbuntuBonding
И для получения дополнительной информации о bonding интерфейсов посмотрите здесь https://www.kernel.org/doc/Documentation/networking/bonding.txt
Когда вы запускаете echo
, вы отправляете вывод на терминал. Терминал интерпретирует escape-последовательности, например, для изменения цвета в отправляемом ему выводе. Эти escape-последовательности предназначены для отправки приложениями, поэтому они распознаются в выводе, который поступает из приложения, работающего в терминале. Обычно приложение, работающее в терминале, запускается эмулятором терминала (вашей оболочкой )и теми, которые запускаются им по очереди, но если вы запустите echo … >/dev/tty2
, то echo
фактически «работает в терминале». ” (в том смысле, что его вывод идет на терминал, что здесь имеет значение ).
Когда вы нажимаете Esc [ и т. д., вы отправляете ввод на терминал. Терминал не интерпретирует escape-последовательности, например, для изменения цвета на входе, который он получает. Терминал интерпретирует escape-последовательности при вводе, но для совершенно другой цели :они представляют собой способ кодирования нажатий функциональных клавиш.
Как работает ввод с клавиатуры и вывод текста? имеет соответствующую предысторию.
Это работает даже в xterm в xorg:
stty -echoctl
sleep <a bit>
Затем на «мертвом» терминале вы можете напрямую нажать Escape
, а затем
[32m
и следующие клавиши, которые вы нажимаете, уже зеленые! Если вы убьете сон с помощью Ctrl -C, ваша подсказка останется чистой...
Вопрос — это особый случай --способ вывода управляющей последовательности с клавиатуры на экран, в то время как readline/bash находится в коме.
С нормальным echoctl/ctlecho, после sleep
оболочка повторяет нажатия клавиш (ввод ), но также выводит клавишу escape непосредственно как ^[
на экран (вывод ). Специальное значение как «ввод управляющей последовательности (CSI )утрачено.
Так разве (принятый )ответ не неверен?
Здесь я нажимаю ctrl -C с курсором на "l" в "строке", как будто я решаю прервать и не продолжать редактирование строки:
$ weird -cmd ^Cne
$ stty -echoctl
$ weird -cmd line
$ # nice but now it looks like it got exec'd
По-видимому, это основной эффект этой опции stty echoctl.
Я только что понял, что пресса Escape
— это сокращение от control-[
или ^[
. Так что логично, что tty просто сразу выдает ECHO ^[ char, а не ждет последовательности. После sleep
с обычным эхо-вызовом клавиша Home генерирует ^[[H
. Без echoctl, то есть после stty -echoctl
, клавиша Home... помещает курсор вверху слева моего экрана xterm!
(Когда bash бодрствует, клавиша Home работает :в начале строки.)
эти две строки bind -p
встроены в /terminfo xterm:
"\eOH": beginning-of-line
"\e[H": beginning-of-line