从挂起唤醒时运行“nordvpn connect”时出错

从挂起唤醒时运行“nordvpn connect”时出错

我正在运行 Pop!_OS,一个基于 Ubuntu 的操作系统,我想nordvpn disconnect在挂起之前和nordvpn connect挂起之后运行。我正在使用来自的代码这个 arch linux wiki并且无法让nordvpn connect/nordvpn disconnect命令在系统唤醒时运行。我将该文件添加99nordvpn-reload/lib/systemd/system-sleep/并使其可执行sudo chmod a+x 99nordvpn-reload。该文件中的代码是:

#!/bin/sh
case $1/$2 in
  pre/*)
    nordvpn disconnect
    ;;
  post/*)
    nordvpn connect
    ;;
esac

从睡眠中醒来,运行journalctl -u systemd-suspend.service显示:

Jun 13 22:08:38 pop-os [4520]: /usr/lib/systemd/system-sleep/99nordvpn-reload failed with exit status 1.

我还尝试以本地用户身份运行该命令:

#!/bin/sh
case $1/$2 in
  pre/*)
    sudo -u $USER nordvpn disconnect
    ;;
  post/*)
    sudo -u $USER nordvpn connect
    ;;
esac

$USER被替换为 的输出echo $USER。但是,我收到与以前相同的错误消息。我假设此错误与nordvpn本地或我安装的软件包有关$USER,因此尝试使用 执行命令sudo -u $USER

基于这个线程,我还尝试创建具有以下内容的全局可执行文件/usr/local/bin/nordvpn-reload

#!/bin/bash

nordvpn disconnect;nordvpn connect

并将内容更改/lib/systemd/system-sleep/99nordvpn-reload为:

#!/bin/sh
case $1/$2 in
  pre/*)
    exit 0
    ;;
  post/*)
    /usr/local/bin/nordvpn-reload
    ;;
esac

但我再次遇到与往常相同的错误。任何建议/建议/进一步阅读将不胜感激。

答案1

我在 Ubuntu 20.04 LTS 上尝试了类似的方法,对我来说它与以下脚本一起工作/lib/systemd/system-sleep/nordvpn-reload

#!/bin/sh
case $1 in
  pre)
    nordvpn disconnect
    ;;

  post)
    nordvpn connect
    ;;
esac

答案2

就我而言,我必须将线路pre)@moritz-shroeder 的回应确保 NordVPN 确实关闭:

#!/bin/sh
case $1 in
  pre)
    pkill -9 nordvpn
    ;;

  post)
    nordvpn connect
    ;;
esac

正如你所看到的,我pkill在这里使用 signal 9。这告诉nordvpn 实际上杀死它的进程。出于某种原因,disconnect对于我来说,简单的方法还不够。

您可以了解更多信息pkill 这里

相关内容