在发出停止pptpd的命令后,在所有VPN客户端断开连接之前,pptpd不会停止。 以下代码显示发出停止命令后,pptpd仍在运行。
ubuntu@ip-10-138-31-87:~$ sudo /etc/init.d/pptpd stop Stopping PPTP: pptpd. ubuntu@ip-10-138-31-87:~$ ps -ef |grep pptpd root 5524 1 0 21:46 ? 00:00:00 pptpd [<myIp>:8544 - 0000] root 5525 5524 0 21:46 pts/1 00:00:00 /usr/sbin/pppd local file /etc/ppp/pptpd-options 115200 192.168.0.1:192.168.0.234 ipparam <myIP> plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip <myIP> ubuntu 5564 4668 0 21:50 pts/4 00:00:00 grep --color=auto pptpd
在所有活动的vpn客户端连接都手动断开之后,pptpd就会停止。 有没有办法可以强制停止即使有活动的VPN客户端连接的PPTPDD?
花足够的时间来正确编写脚本,你应该可以在init脚本里面使用tcpkill或者cutter命令,这样在试图停止守护进程之前,连接就被终止了(假设你没有尝试过使用kill命令,有一些forms的autorespawn发生在这里可能会限制其有效性)。
http://www.cyberciti.biz/tips/cutting-the-tcpip-network-connection-with-cutter.html http://www.cyberciti.biz/howto/question/linux/kill-tcp-connection-using -linux-netstat.php
killall pppd
这显然会杀死包括pptp客户端在内的所有ppp连接
在这些日子里,我想我们都不使用PPP拨号,所以你不会冒险中断任何活跃的互联网contion,所以这应该为你。
或者,你可以做一个
ps -aux | grep ppp
并获得与pptp连接关联的pid列表,并逐个手动杀死它们。