Как запустить 2 строки в Bash бок о бок

Я новичок в Bash, и я пытаюсь заставить этот скрипт уведомлять меня, когда я подключен и отключен от моего VPN.

Проблема, с которой я столкнулся, заключается в том, что когда я запускаю свой "openvpn", он перестает прислушиваться к остальным последующим строкам, поэтому мне пришлось поставить "подключенную" строку уведомлений еще до того, как я войду в систему. Есть ли более идеальный способ, которым я могу напишите это так, чтобы моя "подключенная" линия работала только тогда, когда подключена открытая линия vpn?

Если это поможет, это для Ubuntu.

#!/bin/bash

set -e

function discon {
  notify-send -i /usr/share/icons/Adwaita/32x32/devices/network-vpn.png "Home Network" "Disconnected"
}

notify-send -i /usr/share/icons/Adwaita/32x32/devices/network-vpn.png "Home Network" "Connected"

openvpn --config /home/matthew/Documents/vpn/MatthewLaptop.ovpn

trap discon EXIT

2 ответа

Решение

Вы можете добавить & отсоединить процесс от терминала. В противном случае bash продолжит выполнение сценария только тогда, когда openvpn выходы.

openvpn --config /home/matthew/Documents/vpn/MatthewLaptop.ovpn &

Вы, вероятно, хотите, чтобы OpenVPN обрабатывал это уведомление сам.

Из справочной страницы OpenVPN:

   --up cmd
          Run command  after successful TUN/TAP device open (pre --
          UID change).

           consists of  a  path  to  script  (or  executable  program),
          optionally  followed by arguments. The path and arguments may be
          single- or double-quoted and/or escaped using a  backslash,  and
          should be separated by one or more spaces.

В конфигурационном файле это просто up /path/to/script, Например:

user loval
group loval
script-security 2
up /home/loval/bin/vpn_is_up.sh

script-security Немного важен, потому что (также со страницы руководства):

          0 -- Strictly no calling of external programs.
          1  -- (Default) Only call built-in executables such as ifconfig,
          ip, route, or netsh.
          2 -- Allow calling  of  built-in  executables  and  user-defined
          scripts.
          3  --  Allow passwords to be passed to scripts via environmental
          variables (potentially unsafe).

Также читайте о --up-restart а также --down опции.

Другие вопросы по тегам