ubuntu中沒有/etc/inittab檔案

蝸牛大俠發表於2014-04-06

在Ubuntu中,inittab軟體包已經被Upstart軟體包替換了,所有的配置資訊都在/etc/event.d/目錄下。

******************************************************************

因為debian 系衍生出來的linux 一向是沒有使用/etc/inittab 作為登入狀態文件來使用的。但是雖然沒有系統預設沒有這個檔案,但是你可以自己建一個inittab檔案。 
因為從/etc/event.d/中的rc-default檔案中程式碼可以看出: 
script 
runlevel --reboot || true 
if grep -q -w -- "-s\|single\|S" /proc/cmdline; then 
telinit S 
elif [ -r /etc/inittab ]; then 
RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)" 
if [ -n "$RL" ]; then 
telinit $RL 
else 
telinit 2 
fi 
else 
telinit 2 
fi 
end script 
系統會首先搜尋inittab檔案,如果不存在,那麼將執行在2級別上。所以你可以自己建個inittab檔案,或者把相應的telinit 2 改為 telinit X(你想要執行的級別)

 

===================================================================

linux 啟動時第一個程式是/sbin/init,其主要功能就是軟體執行環境,包括系統的主機名、網路設定、語系處理、檔案系統格式及其他服務的啟動等。其配置檔案就是/etc/inittab,但在我的ubuntu10.10卻沒有找到此檔案。
原來ubuntu中使用/etc/event.d這個目錄,完成相似的功能。ubuntu9.10版本的upstart不再用/etc/event.d這個目錄了。而是改用/etc/init目錄。在/etc/init/下發現一個檔案rc-sysinit.conf,與rc.sysinit檔名相似,於是開啟發現其中有如下內容:

  1. # rc-sysinit - System V initialisation compatibility  
  2. #     
  3. # This task runs the old System V-style system initialisation scripts,  
  4.   
  5. # and enters the default runlevel when finished.  
  6. # Check for default runlevel in /etc/inittab  
  7.      
  8.  if [ -r /etc/inittab ]          
  9.      then                 
  10.     eval "$(sed -nre 's/^[^#][^:]*:([0-6sS]):initdefault:.*/DEFAULT_RUNLEVEL="\1";/p' /etc/inittab || true)"  
  11.  fi  
  12. ......    
  13.   
  14. # Run the system initialisation scripts         
  15. [ -n "${FROM_SINGLE_USER_MODE}" ] || /etc/init.d/rcS  
很明顯,在ubuntu還是支援/etc/initab檔案的。指令碼的最後會執行/etc/init.d/rcS, rcS的內容為::
  1. #! /bin/sh    
  2. #     
  3. # rcS     
  4. #     
  5. # Call all S??* scripts in /etc/rcS.d/ in numerical/alphabetical order    
  6. #  

檔案中所有的語句竟然都被註釋掉了,看來此檔案的存在只是為了相容而已,沒有實現用處。不過還是看一看srS.d目錄:

  1. gavin@ubuntu:/etc/rcS.d$ ll   
  2. 總計 20  
  3. -rw-r--r--   1 root root   447 2009-09-07 11:58 README  
  4. lrwxrwxrwx   1 root root    18 2010-12-07 05:27 S01apparmor -> ../init.d/apparmor*  
  5. lrwxrwxrwx   1 root root    16 2010-12-07 05:27 S01brltty -> ../init.d/brltty*  
  6. lrwxrwxrwx   1 root root    20 2010-12-07 05:27 S01lm-sensors -> ../init.d/lm-sensors*  
  7. lrwxrwxrwx   1 root root    20 2010-12-07 05:27 S01x11-common -> ../init.d/x11-common*  
  8. lrwxrwxrwx   1 root root    21 2010-12-07 05:27 S02pcmciautils -> ../init.d/pcmciautils*  
  9. lrwxrwxrwx   1 root root    17 2010-12-07 05:27 S02urandom -> ../init.d/urandom*  

所有檔案都是符號連結,都指向../init.d目錄中的檔案 

都在/etc/init.d的指令碼檔案裡。它不是單獨的一個rc.local檔案,Ubuntu和Debian裡不用它的。你可以自己編寫一個指令碼放在/etc/init.d裡就可以啦

相關文章