
我在 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。