Код выхода монитора в tmux

Думаю, решение состоит в том, чтобы иметь скрипт, который

  1. разрешение имени
  2. модификация Netfilter/таблицы маршрутизации

и интегрируйте этот скрипт в процедуру запуска OpenVPN. Это можно сделать

  1. с внутренними скриптами OpenVPN -(--up)
  2. вне OpenVPN в стартовом сценарии (например. ExecStartPre=в системе)

Я не уверен в первом случае, но предполагаю, что в обоих случаях необходимо (как минимум полезно )предотвратить повторную попытку OpenVPN установить соединение после разрыва туннеля (или хотя бы ограничить время, используемое для повторных попыток ).

В обоих случаях необходимо openvpnперезапустить извне, т.е. с Restart=alwaysв файле модуля systemd.

6
03.09.2015, 01:27
1 ответ
  1. В вашем домашнем каталоге создайте файл .exit-monitor.sh, затем выполните chmod +x.exit-monitor.sh. Напишите это:
#!/bin/bash

if (( $1 == 0 )); then
    tmux set-window-option status-left "#[fg=colour0]#[bg=colour2]$1"
else
    tmux set-window-option status-left "#[fg=colour0]#[bg=colour1]$1"
fi
  1. В свой .bashrcдобавьте это:
if echo "$PROMPT_COMMAND" | /bin/grep "exit-monitor" &>/dev/null; then
    export PROMPT_COMMAND=${PROMPT_COMMAND/~\/.exit-monitor.sh \$?;/}
fi

if ps -aux | grep tmux | grep -v grep &>/dev/null; then
    export PROMPT_COMMAND="~/.exit-monitor.sh \$?; $PROMPT_COMMAND"
fi

Это удалит скрипт из PROMPT _COMMAND, если он там уже есть, и повторно -добавит его в начало переменной, но только если запущен tmux. В противном случае вы бы продолжали добавлять скрипт в PROMPT _COMMAND снова и снова, и вы бы получали раздражающие сообщения об ошибках, если tmux не запущен.

Теперь маленький квадратик в левом углу строки состояния tmux будет отображаться либо зеленым, либо красным цветом, а также номером состояния выхода. Если вы хотите, вы также можете добавить текст, например. НЕУДАЧА/УСПЕХ с помощью

tmux set-window-option status-left "#[fg=colour0]#[bg=colour1]FAIL"

или аналогичный. Конечно, вы также можете изменить положение, например. используйте status-right. Одно важное замечание заключается в том, что .exit-monitor.shдолжно быть первой записью в PROMPT_COMMAND, чтобы это работало, и если у вас есть какие-либо другие инструменты, записывающие текст состояния, эти инструменты должны иметь возможность добавлять свой статус, а не заменять его.

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

2
08.07.2020, 11:57

Теги

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