我开始与 建立 VPN 连接sudo openvpn --daemon --config connection.ovpn
。有没有一种方法可以终止此连接,ps
而无需自行搜索进程然后再进行搜索kill
?
答案1
由于 OpenVPN 似乎没有为此提供任何自己的功能,因此您可能正在寻找pkill <process-name>
,它将搜索全部匹配给定名称的进程,并杀死它们。
如果您正在运行多个实例,但只想终止特定实例,则该-f
选项允许您匹配包括参数在内的完整进程调用,例如pkill -f "openvpn --config connection.ovpn"
。
ps x
查看或的输出pgrep -lf <process-name>
(与 相同pkill
,但不会杀死它们,因此本质上类似于ps | grep <name>
)以找出守护进程启动时使用的参数。
答案2
从https://openvpn.net/community-resources/how-to/
控制正在运行的 OpenVPN 进程在 Linux/BSD/Unix 上运行
OpenVPN 接受多种信号:
SIGUSR1 — Conditional restart, designed to restart without root privileges
SIGHUP — Hard restart
SIGUSR2 — Output connection statistics to log file or syslog
SIGTERM, SIGINT — Exit
使用 writepid 指令将 OpenVPN 守护进程的 PID 写入文件,以便您知道将信号发送到哪里(如果您使用 initscript 启动 openvpn,该脚本可能已经在 openvpn 命令行上传递了 –writepid 指令)。
所以,你应该使用kill命令,并使用arg -writepid启动openvpn。
答案3
不,您需要终止该进程。公平地说,守护进程管理脚本就可以做到这一点。您可以使用 pgrep 或 pkill 让您的生活更轻松。
答案4
sudo openvpn3 session-manage --disconnect --config $'client'.ovpn
将 client 替换为相应的名称。这将关闭会话。