v210 启动脚本分析
1. 一般嵌入式linux系統的init進程會首先讀取/etc/inittab文件,這里記錄了系統在不階段需要運行的程序與腳本文件。
? ? 其中v210的此文件里有這么一句
? ? ::sysinit:/etc/init.d/rcS
? ? 也就是說在系統啟動階段要運行rcS文件。
2. 現在看rcS文件
? ?for i in /etc/init.d/S??* ;do ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ?case "$i" in
? ? ? ? *.sh)
? ? ? ? ? ? # Source shell script for speed.
? ? ? ? ? ? (
? ? ? ? ? ? ? ? trap - INT QUIT TSTP
? ? ? ? ? ? ? ? set start
? ? ? ? ? ? ? ? . $i
? ? ? ? ? ? )
? ? ? ? ? ? ;;
? ? ? ? *)
? ? ? ? ? ? # No sh extension, so fork subprocess.
? ? ? ? ? ? $i start
? ? ? ? ? ? ;;
? ? esac
?done
? ?很簡單的腳本文件,有幾個地方需要注意。
? ?實際這個腳本文件就是掃描init.d文件夾的下的所有以S開頭的腳本。
? ?但這里在啟動腳本之前,做了兩件事,首先用trap命令忽略了一些可能打斷腳本執行的信號。
? ?然后用set start設置一個本地變量。然后,用點+空格的方式來執行腳本。
? ?這樣本地變量就可以通過腳本參數($1)的形式傳遞給了要執行的腳本。
3. 隨便找一個init.d下的腳本來看一下。
? ? S99qttest
? ??case "$1" in
? ? ? ? start)
? ? ? ? ? ? ? ?echo "Starting qttest..."
? ? ? ? ? ? ? ?/usr/share/demo/qttest -qws &
? ? ? ? ? ? ? ?/usr/share/demo/hdmi_x210 &
? ? ? ? ? ? ? ?mkdir -p /mnt/userdata
? ? ? ? ? ? ? ?mount /dev/mmcblk0p4 /mnt/userdata
? ? ? ? ? ? ? ?;;
? ? ? ? stop)
? ? ? ? ? ? ? echo -n "Stopping qttest..."
? ? ? ? ? ? ? ?;;
? ? ? ? restart|reload)
? ? ? ? ? ? ? ?"$0" stop
? ? ? ? ? ? ? ?"$0" start
? ? ? ? ? ? ? ?;;
? ? ? ? *)
? ? ? ? ? ? ? ? ?echo "Usage: $0 {start|stop|restart}"
? ? ? ? ? ? ? ? ?exit 1
? ? ?esac
? ? 從這個要執行的腳本,就可以看到傳遞進腳本的參數的用途了。
? ? 傳遞start才能啟動那些我們想開機啟動的程序。
? ?
總結
以上是生活随笔為你收集整理的v210 启动脚本分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招行附属卡年费多少?怎么减免年费?
- 下一篇: 净值型理财产品会亏吗?风险大不大?