如何解决如何将脚本发布到networkmanager的dispatcher.d目录中
|| Ubuntu 10.10 64位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
此脚本出于测试目的故意很简单。
我可以发布任何其他有用的信息。
解决方法
我正在使用语法
killall -9 any_application_name_here
,并且工作正常。我以为脚本无法访问二进制wmctrl。我认为在这种情况下,bash解释器将仅执行bash二进制文件。
因此,简而言之,如果要基于网络事件控制VPN流量,一种方法是将脚本发布到“ 2”并使用bash默认路径中的二进制文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。