После выдачи команды для остановки pptpd pptpd не остановится, пока все VPN-клиенты не отключатся. Следующий код показывает, что 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 останавливается. Есть ли способ принудительно остановить pptpd даже при наличии активных клиентских подключений vpn?
Потратьте достаточно времени, чтобы правильно написать сценарий, и вы сможете использовать команду tcpkill или cutter внутри сценария инициализации, чтобы соединения были прерваны до попытки остановить демон (при условии, что вы не пробовали использовать команду kill и что здесь происходит некоторая форма автореспауна, которая может ограничивать его эффективность).
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
Это, очевидно, уничтожит все соединения ppp, включая клиентов pptp
В наши дни я думаю, что все мы не используем коммутируемые соединения ppp, поэтому вы не рискуете прервать какое-либо активное подключение к Интернету, поэтому это должно быть сделано для вас.
Или вы можете сделать
ps -aux | grep ppp
и получите список pid, связанных с соединениями pptp, и уничтожьте их вручную один за другим.