ubuntu中rc.local无效

在ubuntu中写了一点iptables规则,但是,竟然iptables竟然无效,经过多方查找问题。。。眼泪。。。

终于发现是rc.local竟然没有运行,我晕。仔细检查iptables脚本n遍,没有发现问题。但是,重启后仍然没有运行。

iptables表为空。于是,单独拿出一条规则,在终端运行,在用iptables -L进行检查,结果正常显示。

经过网络搜索后,有人提示说:可能默认的sh不是bash导致,脚本不兼容,从而没有执行。

注意:有的ubuntu16.04系统默认都没有rc.local脚本,所以首先要排除没有执行权限的问题。

ls -al /etc/rc.local   如果没有执行权限,显然无法启动。这是只要 chmod +x /etc/rc.local就ok了。

然后,在检查是否是dash脚本不兼容的问题,现在这类情况已经不多见了。修改为bash的方法:

方法1:在终端执行 sudo dpkg-reconfigure dash,然后选择 no.

方法2:重新进行软链接:

sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh

最后是systemd导致的rc.local无法启动。这类情况网上找答案吧。我没遇到过,也不太了解systemd。

 

posted @ 2016-10-24 20:32  立体风  阅读(6467)  评论(0编辑  收藏  举报