首页 文章

如何将脚本发布到networkmanager的dispatcher.d目录

提问于
浏览
0

Ubuntu 10.10 64bit athalon,gnome

我的基本情况是我正在连接到VPN服务(通过newtworkmanager pptp协议),我正在传输私有数据(因此VPN) . 服务间歇性地停止,这很好,可能是由于我的ISP / OS / VPN . 不好的是,我的应用程序将继续通过eth0默认路由传输数据,这并不酷 . 经过一番环顾,我怀疑处理这个问题的最佳方法是将脚本发布到/etc/NetworkManager/dispatcher.d中 . 简而言之,当网络的任何变化发生时,networkmanager服务将执行此目录中的脚本(并将参数传递给脚本) .

我的问题是我无法执行任何脚本 . 根据联机帮助页,它们都具有0755权限并由root拥有,但是当我通过拔出以太网电缆来更改网络状态时,我的脚本不会执行 . 我可以从命令行执行它们,但不能通过调度程序自动执行....

示例脚本:

#!/bin/sh -e


exec /usr/bin/wmctrl -c qBittorrent

exit 0

这个脚本故意用于测试目的 . 我可以发布其他任何有用的内容 .

1 回答

  • 0

    我正在使用语法 killall -9 any_application_name_here 并且's working just fine. I imagine the script didn't可以访问二进制文件wmctrl . 我认为在这种情况下bash解释器只会执行bash二进制文件 .

    因此,简而言之,如果您想根据网络事件控制VPN流量,一种方法是将脚本发布到 /etc/NetworkManager/dispatcher.d 并使用bash默认路径中的二进制文件 .

相关问题