D.12。 /etc/rc.d/init.d/console
#!/ bin / sh的
############################################### ######################
# 开始控制台
#
#!/ bin / sh的
############################################### ######################
# 开始控制台
#
# 描述 : 设置键盘映射和屏幕字体
#
# 作者:杰拉德·比克曼斯 - [电子邮件保护]
#亚历山大·E·帕特拉科夫
# DJ 卢卡斯 - [电子邮件保护]
# 更新:布鲁斯·杜布斯 - [电子邮件保护]
#
# 版本:LFS 7.0
#
############################################### ######################
### BEGIN INIT INFO
# 提供:控制台
# 必需-开始:
# 应该开始:$local_fs
# 需要停止:
# 应该停止:
# 默认开始:S
# 默认停止:
# 简短说明:设置本地化控制台。
# 描述:设置用户的字体和语言设置
# 本地由 /etc/sysconfig/console 定义。
# X-LFS-提供者:LFS
### END INIT INFO
。 / lib / lsb / init-functions
# 母语为英语的人可能根本没有 /etc/sysconfig/console [ -r /etc/sysconfig/console ] && 。 /etc/sysconfig/控制台
是真的()
{
[ "$1" = "1" ] || [ "$1" = "是"] || [ "$1" = "真" ]
}
失败=0
案例“${1}”在开始)
# 看看我们是否需要做任何事情
if [ -z "${KEYMAP}" ] && [ -z "${KEYMAP_CORRECTIONS}" ] && [ -z "${FONT}" ] && [ -z "${LEGACY_CHARSET}" ] &&
! is_true "${UNICODE}"; 然后退出0
fi
# 这条线以下应该没有假故障! log_info_msg "正在设置 Linux 控制台..."
# 判断是否使用了帧缓冲控制台
[ -d /sys/class/graphics/fb0 ] && use_fb=1 || use_fb=0
# 找出设置控制台的命令
# 想要的模式
is_true "${UNICODE}" &&
MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" || MODE_COMMAND="echo -en '\033%@\033(K' && kbd_mode -a"
# 在帧缓冲控制台上,必须为每个 vt 设置字体
# UTF-8 模式。 这在非 UTF-8 模式下也不会受到影响。
! is_true "${use_fb}" || [ -z "${FONT}" ] || MODE_COMMAND="${MODE_COMMAND} && setfont ${FONT}"
# 将该命令应用于中提到的所有控制台
# /etc/inittab.conf 重要提示:在 UTF-8 模式下,这应该
# 发生在 setfont 之前,否则会出现内核错误
# 显示出来,字体的unicode映射不会
# 用过的。
forTTY in `grep '^[^#].*respawn:/sbin/agetty' /etc/inittab | grep -o '\btty[[:digit:]]*\b'`
do
openvt -f -w -c ${TTY#tty} -- \
/bin/sh -c "${MODE_COMMAND}" || 失败=1
完成
# 设置字体(如果上面还没有设置)和键盘映射
[ "${use_fb}" == "1" ] || [ -z "${FONT}" ] || setfont $FONT || 失败=1
[ -z "${KEYMAP}" ] ||
loadkeys ${KEYMAP} >/dev/null 2>&1 || 失败=1
[ -z "${KEYMAP_CORRECTIONS}" ] ||
loadkeys ${KEYMAP_CORRECTIONS} >/dev/null 2>&1 || 失败=1
# 将键映射从 $LEGACY_CHARSET 转换为 UTF-8 [ -z "$LEGACY_CHARSET" ] ||
dumpkeys -c "$LEGACY_CHARSET" | loadkeys -u >/dev/null 2>&1 || 失败=1
# 如果上面的任何命令失败,陷阱在
# top 将 $failed 设置为 1 ( exit $failed )evaluate_retval
退出 $ 失败
;;
*)
ESAC
echo "用法:${0} {start}" exit 1
;;
# 结束控制台