Linux 如何使用Perl终止OpenVPN连接?
有没有办法用Linux或Perl命令终止用户OpenVPN连接?系统调用tcpkill程序。断开连接用户的连接:Linux 如何使用Perl终止OpenVPN连接?,linux,perl,openvpn,Linux,Perl,Openvpn,有没有办法用Linux或Perl命令终止用户OpenVPN连接?系统调用tcpkill程序。断开连接用户的连接: /usr/bin/openvpn-sudo-user kill \"username\" 但首先应该禁用该用户。如果在启动时将OpenVPN作为服务自动启动,最干净的方法是: service openvpn stop 从命令行(或从perl执行) 您可以按照其他建议直接杀死它,但使用提供的方法停止服务将执行OpenVPN需要的任何额外清理(例如,清理锁文件、运行pid文件等) A
/usr/bin/openvpn-sudo-user kill \"username\"
但首先应该禁用该用户。如果在启动时将OpenVPN作为服务自动启动,最干净的方法是:
service openvpn stop
从命令行(或从perl执行)
您可以按照其他建议直接杀死它,但使用提供的方法停止服务将执行OpenVPN需要的任何额外清理(例如,清理锁文件、运行pid文件等)
AFIAK在当前版本中可以杀死OpenVPN,但谁知道将来的版本会怎么样。使用
tcpkill ip主机192.168.1.2
如果使用perl模块Proc::Background作为命令启动OpenVPN,也可以使用相同的Proc::Background杀死他:
#!/usr/bin/perl
use strict;
use warnings;
use Proc::Background;
my $command = 'openvpn --config /etc/openvpn/client.conf';
my $proc = Proc::Background->new($command); $proc->alive;
print "started\n";
sleep (30);
if ($proc->alive == 1) { $proc->die; print "stopped\n";}
这个问题属于serverfaultbut,但通过kill命令,在编程kill连接时。但我是怎么问的。
#!/usr/bin/perl
use strict;
use warnings;
use Proc::Background;
my $command = 'openvpn --config /etc/openvpn/client.conf';
my $proc = Proc::Background->new($command); $proc->alive;
print "started\n";
sleep (30);
if ($proc->alive == 1) { $proc->die; print "stopped\n";}