action

操作字段action的有效操作有:

  • respawn :进程将在终止时重新启动(例如 getty)。
  • wait :进程将在进入指定的运行级别时启动一次,init 将等待其终止。
  • once :进程将在进入指定的运行级别时执行一次。
  • boot :该过程将在系统引导期间执行。运行级别字段被忽略。
  • bootwait :该进程将在系统启动期间执行,而 init 等待其终止(例如 /etc/rc)。运行级别字段被忽略。
  • ondemand :只要调用指定的ondemand 运行级别,就会执行标有on demand 运行级别的进程。但是,不会发生运行级别更改(按需运行级别是“a”、“b”和“c”)。
  • initdefault :initdefault 条目指定在系统启动后应进入的运行级别。如果不存在,init 将在控制台上询问运行级别。进程字段被忽略。
  • sysinit :该过程将在系统引导期间执行。

它将在任何引导或者引导等待条目之前执行。运行级别字段被忽略。

  • powerwait : 断电时将执行该过程。 Init 通常通过与连接到计算机的 UPS 交谈的进程来通知这一点。 Init 将在继续之前等待该过程完成。
  • powerfail :与 powerwait 一样,除了 init 不等待进程完成。
  • powerokwait :一旦通知 init 电源已恢复,此过程将立即执行。
  • powerfailnow : 当 init 被告知外接 UPS 的电池快没电并且电源出现故障时,将执行此过程(前提是外接 UPS 和监控进程能够检测到这种情况)。
  • ctrlaltdel:init 收到 SoirNT 信号时将执行该进程。

这意味着系统控制台上有人按下了 Ctrl-Alt-Del 组合键。通常,人们希望执行某种关闭以进入单用户级别或者重新启动机器。

  • kbrequest :当 init 从键盘处理程序接收到在控制台键盘上按下了特殊组合键的信号时,将执行该过程。

更多文档可以在 kbd-x.xx 包中找到。
基本上你想将一些键盘组合映射到“KeyboardSignal”动作。
例如,要为此目的映射 Alt+UpArrow,请在键盘映射文件中使用以下内容:

alt keycode 103 = KeyboardSignal
Linux/Unix 命令 inittab

'inittab' 文件指定了 Linux 的启动和正常操作程序

inittab 文件描述了在启动时和正常操作期间启动的进程。
Init 区分不同的运行级别,每个运行级别都可以有自己的一组启动的进程。
有效的运行级别是 0 -6 加上 A 、 B 和 C 用于按需条目。
inittab 文件中的条目具有以下格式:

id:runlevels:action:process

以“#”开头的行将被忽略。

在文件中, id 是 1-4 个字符的唯一序列,用于标识 inittab 中的条目。

对于 gettys 或者其他登录过程,id 字段应该是相应 tty 的 tty 后缀,例如1 为 tty1 。
否则,登录记帐可能无法正常工作。

运行级别、操作和进程

iniitab 文件包含的信息包括:

  • runlevels 列出了应该对其采取指定操作的运行级别。
  • action 描述了应该采取什么行动。
  • process 指定要执行的进程。如果进程字段以“+”字符开头,则 init 不会对该进程进行 utmp 和 wtmp 记帐。这对于坚持执行自己的 utmp/wtmp 内务的 gettys 是必需的。这也是一个历史错误。

运行级别字段可能包含不同运行级别的多个字符。
例如,123 指定进程应该在运行级别 1、2 和 3 中启动。
按需条目的运行级别可能包含 A、B 或者 C。
sysinit 、 boot 和 bootwait 条目的 runlevels 字段被忽略。

当系统运行级别更改时,任何未为新运行级别指定的正在运行的进程都会被终止,首先使用 SIGTERM,然后使用 SIGKILL。

“inittab”文件示例

这是一个类似于旧 Linux inittab 的 inittab 示例:

# inittab for linux
id:1:initdefault:
rc::bootwait:/etc/rc
1:1:respawn:/etc/getty 9600 tty1
2:1:respawn:/etc/getty 9600 tty2
3:1:respawn:/etc/getty 9600 tty3
4:1:respawn:/etc/getty 9600 tty4

这个 inittab 文件在引导期间执行 /etc/rc 并在 tty1-tty4 上启动 gettys。

具有不同运行级别的更精细的 inittab:

# Level to run in
id:2:initdefault:
# System initialization before anything else.
si::sysinit:/etc/rc.d/bcheckrc
# Runlevel 0,6 is halt and reboot, 1 is maintenance mode.
l0:0:wait:/etc/rc.d/rc.halt
l1:1:wait:/etc/rc.d/rc.single
l2:2345:wait:/etc/rc.d/rc.multi
l6:6:wait:/etc/rc.d/rc.reboot
# What to do at the "3 finger salute".
ca::ctrlaltdel:/sbin/shutdown -t5 -rf now
# Runlevel 2&3: getty on console, level 3 also getty on modem port.
1:23:respawn:/sbin/getty tty1 VC linux
2:23:respawn:/sbin/getty tty2 VC linux
3:23:respawn:/sbin/getty tty3 VC linux
4:23:respawn:/sbin/getty tty4 VC linux
S2:3:respawn:/sbin/uugetty ttyS2 M19200
日期:2020-07-15 11:16:47 来源:oir作者:oir