bash script openvpn, wait for output, ssh server, end openvpn

Где это?

Эта статья путает Linux (ядро ​​)и Gnu/Linux, поэтому трудно понять, о чем она говорит.

Однако с некоторым усилием можно увидеть, что он не обсуждает что-то в ядре :он говорит

in the "plumbing layer" that wraps the kernel.

и

Such changes should not bother users as long as the kernel and the plumbing layer change at the same time.

Так что же это?

В статье говорится о том, что это такое

This layer is not precisely defined.

0
09.04.2020, 16:31
2 ответа

Реализация ответаhttps://unix.stackexchange.com/users/100397/roaimaи знание того, что у меня открыто только одно соединение openvpn, позволяет мне повторно использовать команду pkill -9 -x $process_nameиз Лучший способ убить процессы, созданные сценарием bash?-и это привело меня к этому коду

#!/bin/bash
exec 3< <(sudo openvpn --config  /etc/openvpn/server.ovpn)
sed '/Initialization Sequence Completed$/q' <&3 ; cat <&3 &
ssh server
sudo pkill -9 -x openvpn 

Итак,в сумме

  1. сгенерировать скрипт ssh -vpn.sh с кодом выше (добавлена ​​некоторая printfинформация о том, что происходит)

    #!/bin/bash
    printf "Script to initialise openvpn connection to XYZ and open ssh channel into XYZ Server.\n"
    printf "Starting openvpn to YXZ...\n\n"
    exec 3< <(sudo openvpn --config  /etc/openvpn/server.ovpn)
    sed '/Initialization Sequence Completed$/q' <&3 ; cat <&3 &
    printf "VPN now initialised.\nstarting ssh connection to XYZ...\n"
    ssh server
    printf "\nKilling openvpn connection...\n"
    sudo pkill -9 -x openvpn 
    # end of script
    
  2. в оболочке

    # just once
    chmod a+rx ssh-vpn.sh
    
  3. запустить команду в оболочке

    # thereafter
    ./ssh-vpn.sh
    
0
28.04.2021, 23:18

Проблема в том, что код написан для оболочки bash, но вы явно используете shдля ее запуска. На растущем числе платформ это не то же самое.

Вместо sh ssh-vpn.shу вас есть два лучших варианта

  1. Сделайте скрипт исполняемым и позвольте строке #!определить используемую оболочку

    # just once
    chmod a+rx ssh-vpn.sh
    
    # thereafter
    ./ssh-vpn.sh
    
  2. Запустите скрипт с правильной оболочкой

    bash ssh-vpn.sh
    
1
28.04.2021, 23:18

Теги

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