在使用buildroot勾选组件时, 在生成文件系统时会增加组件的初始化脚本.
由于初始化脚本是在登陆前运行的, 某些初始化脚本过慢导致登陆时间过长, 影响体验
初始化运行流程
#!/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
添加循环条件, 指定后台运行
- 在
/etc/init.d/中, 在想要后台运行的脚本文件名后添加-bg后缀, 例如S50sshd-bg - 修改
/etc/init.d/rcS文件, 添加条件, 当有-bg后缀则转入后台运行
for i in /etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
#!/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
# 新增代码段-------------------开始
*-bg)
(
echo $i "run it background"
trap - INT QUIT TSTP
. $i start &
)
;;
# 新增代码段-------------------终止
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
修改后的流程如下
文章讲述了如何优化Linux系统的初始化流程,特别是针对启动时间过长的问题。通过修改/etc/init.d/rcS文件,添加循环条件检查脚本是否带有-bg后缀。如果带有该后缀,脚本将在后台运行,从而加快登陆速度并提高用户体验。这一改动使得系统能够更高效地初始化组件,特别是对于那些执行时间较长的服务。
18

被折叠的 条评论
为什么被折叠?



