歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu的rc.local為何未執行?!

Ubuntu的rc.local為何未執行?!

日期:2017/2/28 16:29:20   编辑:Linux教程
最近,我在搞一套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 問題得到圓滿解決!
Copyright © Linux教程網 All Rights Reserved