Я хотел бы написать скрипт, который сначала называет openvpn, а затем ssh. При вводе команды
sudo openvpn ~/my_connection.ovpn
в командной строке я получаю следующий вывод:
...
Wed Jan 4 21:04:35 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Jan 4 21:04:35 2017 /sbin/ip link set dev tun0 up mtu 1500
Wed Jan 4 21:04:35 2017 /sbin/ip addr add dev tun0 local IP_FOO peer IP_FOO
Wed Jan 4 21:04:35 2017 Initialization Sequence Completed
Эта команда блокируется, и оболочка не освобождается. Чтобы начать ssh-соединение после этого, мне нужно нажать процесс openvpn в фоновом режиме, набрав Ctrl + Z, а затем bg.
Однако я бы хотел вызвать шаг соединения openvpn и ssh автоматически, вызывая только мой файл bash. Как я могу эмулировать шаги Ctrl + Z и bg в этом файле?
Я попытался добавить & к команде openvpn и чтобы поставить nohup перед ним. Ничего не работает.
TL; DR Запустите его в режиме демона: openvpn --config Windscribe-Japan.ovpn --daemon
Передача файла конфигурации (.ovpn) в openvpn работает только в том случае, если не указаны другие параметры. Если я укажу опцию --daemon, тогда openvpn попытается проанализировать имя файла в качестве параметра параметра и выбрасывает TL; DR .
Ответ:
Чтобы избежать этого , имя файла должно быть указано с опцией --config. Например, openvpn --config Windscribe.ovpn --daemon. Затем запустите syslog с tail -f /var/log/syslog для дальнейшего контроля.
Вы также можете проверить до и после вывода этой команды curl curl ifconfig.co, чтобы убедиться, что VPN подключен.
[d8 ] Примечание. Это приведет к тому, что демон будет запущен даже после выхода из сеанса SSH.