在讀了Hawkins的部落格上提到如何在Fedora Core 6中把時間改正為本地時間之後,我也順便檢查了一下Ubuntu中是如何設定的,
突然領悟到了系統程式、系統啟動指令碼與設定檔這3者之間的關係,典型的*NIX風格。
(1) 系統啟動時要執行的 Shell Script (系統啟動指令碼),比如說 /etc/init.d/hwclock.sh
(2) 這個Shell Script 會匯入/etc中的檔案作為配置資訊,即設定檔,比如說 /etc/default/rcS
(3) 真正被執行的還是一個系統程式,這個程式是在Shell Script中調用的,比如說 /sbin/hwclock
具體標註如下:
hwclocksh() { [ ! -x /sbin/hwclock ] && return 0 . /etc/default/rcS <--- 這裡匯入了設定檔的中的變數
. /lib/lsb/init-functions
[ "$GMT" = "-u" ] && UTC="yes" case "$UTC" in no|"") GMT="--localtime" <-- 這裡看出來如果UTC為no則啟用local time UTC="" ;; yes) GMT="--utc" UTC="--utc" ;; *) return 1 ;; esac
### ... 中間部分省略 ... ###
if [ "$HWCLOCKACCESS" != no ]; then # Copies Hardware Clock time to System Clock using the correct # timezone for hardware clocks in local time, and sets kernel # timezone. DO NOT REMOVE. /sbin/hwclock --hctosys $GMT $HWCLOCKPARS $BADYEAR <-- 這裡是運行設定的真身
|
所以,在Ubuntu中要啟用本地時間,需要修改 /etc/default/rcS ,修改動作如下:
# 注釋掉原來的設定:UTC=yes
# 變更為下面的內容...
UTC=no