BusyBoxでカスタムLinuxカーネルをコンパイルしました。 BusyBoxはinit
実行レベルをサポートしません。 BusyBox でカーネルが起動されると、まず BusyBox がinit
不要な場合は次のように動作します。/etc/inittab
init
/etc/inittab
inittab
::sysinit:/etc/init.d/rcS
java
この部分は私が見るにはかなり明確ですが、ネットワークを起動したり、シリアルポートを作成したり、プロセスを開始するデーモンを管理する方法を知りたいです。その中にあるスクリプトを見ましたが、/etc/init.d/
管理方法がわかりません。 .buildroot
/dev/
console
ttyAM0
ベストアンサー1
$path_to_buildroot/output/target/etc/init.d
buildrootの場合、イメージをビルドする前にすべてのスクリプトを配置する必要があります。私の場合、ディレクトリにrcS
S [0-99] script_nameという名前の複数のスクリプトが含まれていました。したがって、独自の起動\停止スクリプトを作成できます。
RCS:
#!/bin/sh
# Start all init scripts in /etc/init.d
# executing them in numerical order.
#
for i in /etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
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
S40networkを例に挙げましょう。
#!/bin/sh
#
# Start the network....
#
case "$1" in
start)
echo "Starting network..."
/sbin/ifup -a
;;
stop)
echo -n "Stopping network..."
/sbin/ifdown -a
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?