rc.local 中的命令有问题

rc.local 中的命令有问题

我正在尝试将以下命令添加到 rc.local:

iptables -A OUTPUT -m owner --gid-owner vpnroute \! -o tun0 -j REJECT

-g vpnroute transmission-gtk

这是为了强制传输仅使用我的 vpn,然后启动它。Vpnroute 组存在,lc.local 由 root 拥有并可以执行。还尝试通过 lxsessions 启动管理器启动,但没有成功。我还尝试制作一个脚本,对其进行 chmod 并从 rc.local 调用它。

脚本本身可以从终端毫无问题地运行,但是启动时什么也没有发生。然后我尝试制作一个 .desktop 文件来执行脚本,将其放在 /home/username/.config/autostart 中,也没有用。

我添加了>> /var/log/rc.local.log 2>&1,但启动后没有创建日志。如果我手动运行 rc.local,我会得到一条日志,上面写着/etc/rc.local: 15:/etc/rc.local:-g: not found。如果我将 sudo 添加到命令中,rc.local 会手动执行(使用密码),但仍不会在启动时执行。

My rc.local:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing. sleep 5 sudo 
iptables -A OUTPUT -m     owner --gid-owner vpnroute \! -o tun0 -j REJECT >> /var/log/rc.local.log 2>&1
sudo -g vpnroute transmission-gtk >> /var/log/rc.local.log 2>&1 
exit 0

当尝试以这种方式启动时,脚本版本:

#!/bin/bash
sleep 3
sudo iptables -A OUTPUT -m owner --gid-owner vpnroute \! -o tun0 -j REJECT
sudo -g vpnroute transmission-gtk
exit

我已经对它们进行了多次更改,以尝试在线论坛中的不同建议。

任何帮助都将不胜感激! 谨致问候 Alex

答案1

如上所述,iptables 规则已使用 iptables-persistent。关于启动 transmission,您应该使用已附带 rc-service 脚本的守护程序。因此,请根据文档设置 transmission 守护程序Ubuntu 文档 并启用它:

service transmission-daemon enable

根据您的配置,您可以通过传输客户端或 Web 界面访问它。

相关内容