Как запустить 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
опции.