Ubuntu的rc.local为何未执行?!

最近,我在搞一套NMS,其中用到Ntop,希望server每次启动时能自动加载Ntop,于是,按照以前RHEL中的习惯,在/etc/rc.local文件中加入 “ntop -i wlan0 -d -L -u ntop &> /dev/null",可是重启后,发现Ntop根本未执行!
如下所示:
qijie@sunshine :~$ ps aux |grep ntop
qijie   2124  0.0  0.0  4012  752 pts/0   S+  14:51  0:00 grep --color=auto ntop
于是,开始google又百度,遇到同样问题的还不少,皆说是须将命令行写在exit 0前,也有说须将rc.local开头的“#!/bin/sh -e”中的 -e去掉( 据说可以忽略脚本执行的错误,否则脚本就会停止执行),然皆无效!
在N+1次百度后,终于找到属于 Ubuntu的原因和解决方法。

从下面可看出,Ubuntu的默认Shell是dash,而不是Bash!
root@sunshine :/home/qijie# ls -al /bin/sh
lrwxrwxrwx 1 root root 4 2010-10-03 23:42 /bin/sh -> dash
Ubuntu的 wiki 里面有官方的解释 ,主要原因是dash更小,运行更快,且与POSIX兼容!
但目前存在的问题是,由于shell的更换,致使很多脚本出错,毕竟现在的很多脚本不是100%POSIX兼容。

解决方法就是将其默认的Shell更改为Bash:
方法一:  在终端执行 sudo dpkg-reconfigure dash,然后选择 no (recommend);
方法二: 重新进行软链接
sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh
我在采用方法一后,Ntop能自动加载了。
如下所示:
root@sunshine :/home/qijie# ps aux |grep ntop
ntop    2493  0.5  1.5 127536 31580 ?     Ssl  14:52  0:02 ntop -i wlan0 -d -L -u ntop
root    2738  0.0  0.0  4012  752 pts/0   S+  14:59  0:00 grep --color=auto ntop
问题得到圆满解决!

转载于:https://my.oschina.net/xxjbs001/blog/371195

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值