OpenVPN断开连接但不终止进程

OpenVPN断开连接但不终止进程

我在 ubuntu 上使用 OpenVPN,如下所示sudo openvpn --config vpnconfig.ovpn --daemon

我想知道是否有办法停止/断开我启动的 OpenVPN 连接而不终止 OpenVPN 进程?

答案1

控制 OpenVPN 进程的官方文档很清楚:你必须使用信号。你通常会不是但是使用 SIGKILL。

在 Linux 上,OpenVPN 接受以下信号:

  • SIGUSR1 —— 有条件重启,旨在无需 root 权限即可重启
  • SIGHUP——硬重启
  • SIGUSR2——将连接统计信息输出到日志文件或系统日志
  • SIGTERM、SIGINT——退出

您可以像这样发出它们kill -USR1 1234,其中 1234 是您想要控制的进程的进程 ID。

如果进程连接到终端,只需按Ctrl+ C。这会将 SIGINT 发送到前台进程。

如果您有多个 OpenVPN 进程在后台以不受控制的方式运行,也许可以考虑使用 Systemd 或类似的东西来管理这些进程。使用 Systemd,它们也可以是用户服务。

如果这不适合你,你也可以使用类似的工具顶部使用命令行以交互方式识别进程,然后直接发送信号。

文档中还提到了另一种可能性,即writepid /path/to/pid-file在 OpenVPN 配置文件中或其--writepid /path/to/pid-file命令行中使用。然后您可以阅读此文件以找出进程 ID。

相关内容