Yanıtlar:
pkill -SIGTERM -f 'openvpn --daemon --conf $ OPENVPNCONFFILE'
pkill komutu, adı veya diğer nitelikleri temel alan bir işlemi işaretlemenizi sağlar
Bu, SIGTERM'i openvpn'e göndererek tun arayüzünden zarif bir şekilde çıkmasına ve kapatmasına neden olur. -F'den sonraki bölümü, openvpn bağlantısını başlatma şeklinize uyacak şekilde değiştirmeniz gerekebilir.
Bunu openvpn man sayfasının Sinyaller bölümünde buldum.
SIGINT, SIGTERM
Causes OpenVPN to exit gracefully.
Sanal arayüzü aşağıdakilerle belirleyin ifconfig
:
tap0 Link encap:Ethernet HWaddr 32:28:a4:04:34:cc
inet addr:172.22.18.14 Bcast:172.22.18.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
ve şununla kapat:
sudo ifconfig tap0 down
İşte RedHat tabanlı için yazdığım init betiği:
#! /bin/bash
#
# openvpn-client Start/Stop the openvpn client
#
# chkconfig: 2345 90 60
# description: start openvpn client at boot
# processname: openvpn
# Source function library.
. /etc/init.d/functions
daemon="openvpn"
prog="openvpn-client"
conf_file="/vagrant/vpn/client-dept18-payment.ovpn"
start() {
echo -n $"Starting $prog: "
if [ -e /var/lock/subsys/openvpn-client ] && [ $(pgrep -fl "openvpn --config /vagrant/vpn/client-dept18-payment.ovpn" | wc -l) -gt 0 ]; then
echo_failure
echo
exit 1
fi
runuser -l root -c "$daemon --config $conf_file >/dev/null 2>&1 &" && echo_success || echo_failure
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/openvpn-client;
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
pid=$(ps -ef | grep "[o]penvpn --config $conf_file" | awk '{ print $2 }')
kill $pid > /dev/null 2>&1 && echo_success || echo_failure
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/openvpn-client;
return $RETVAL
}
status() {
pgrep -fl "openvpn --config /vagrant/vpn/client-dept18-payment.ovpn" >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
pid=$(ps -ef | grep "[o]penvpn --config $conf_file" | awk '{ print $2 }')
echo $"$prog (pid $pid) is running..."
else
echo $"$prog is stopped"
fi
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
condrestart)
[ -f /var/lock/subsys/openvpn-client ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 1
esac
o zaman her zamanki gibi kullanabilirsiniz:
# /etc/init.d/openvpn-client start
Starting openvpn-client: [ OK ]
# /etc/init.d/openvpn-client start
Starting openvpn-client: [FAILED]
# /etc/init.d/openvpn-client status
openvpn-client (pid 5369) is running...
# /etc/init.d/openvpn-client stop
Stopping openvpn-client: [ OK ]
# /etc/init.d/openvpn-client stop
Stopping openvpn-client: [FAILED]
# /etc/init.d/openvpn-client status
openvpn-client is stopped
# /etc/init.d/openvpn-client restart
Stopping openvpn-client: [ OK ]
Starting openvpn-client: [ OK ]
# /etc/init.d/openvpn-client status
openvpn-client (pid 5549) is running...
Hiç serbest yarıçap kullanmadım, ancak OpenVPN'de benzer bir soruna aşinayım. Bağlantı komut satırından başlatılırsa, VPN istemcisi istemde canlı kalır veya arka plana geri çekilir, ancak bağlantıyı açıkça durdurmak için herhangi bir komut yoktur.
Linux altında bağlantıyı durdurmanın tek yolu bir "kill" veya "killall" komutudur. Serbest yarıçap bağlantıları için benzer olabilir.
Sadece daha geniş bir cevapla yorumumu güncelleyeceğimi düşündüm (serbest yarıçap hakkında bilmediğim düşünülerek ilgili olmayabilir) ..
Debian Linux dağıtımını kullandım ve openvpn paketini kurdum. Debian'daki istemci yapılandırması, bağlantıyı sonlandırmak / yönetmek için görünüşte düzgün bir yol olmadığı için bu soruna yol açan komut satırı aracılığıyla başlatılabilir ...
Bugün önyükleme sırasında çalışan bir /etc/init.d/openvpn komut dosyası olduğunu öğrendim ve openvpn config dosyasını / etc / openvpn / (dosya uzantısı .conf olmalıdır) içine yerleştirirsem bağlantıyı kontrol edebilirim /etc/init.d/openvpn stop ve etc / init.d / openvpn start (veya "service openvpn stop") kullanarak.
Yapılandırma dosyasını / etc / openvpn / dizinine koymak, VPN tünelinin önyükleme sırasında otomatik olarak gelmesine de neden olur. Bağlantı kesildikten sonra da otomatik olarak yeniden bağlanır.
sudo pkill openvpn