Linux
一旦内核加载完成,内核会启动 init 进程,然后运行 rc6 脚本,之后运行所有属于其运行级别的命令脚本。这
些脚本都储存在 /etc/rc.d/rcN.d 中(N代表运行级别),并且都建立着到 /etc/init.d 子目录中命令脚本程序
的符号链接。
默认运行级别配置在 /etc/inittab 中。它通常为 3 或 5:
# grep default: /etc/inittab
id:3:initdefault: |
可以使用 init 来改变当前运行级别。举个例子:
运行级别列表如下:
0 系统停止
1 进入单用户模式(也可以是 S)
2 没有 NFS 特性的多用户模式
3 完全多用户模式(正常操作模式)
4 未使用
5 类似于级别3,但提供 XWindow 系统登录环境
6 重新启动系统
使用 chkconfig 工具控制程序在一个运行级别启动和停止。
# chkconfig --list # 列出所有 init 脚本
# chkconfig --list sshd # 查看 sshd 在各个运行级别中的启动配置
# chkconfig sshd --level 35 on # 对 sshd 在级别 3 和 5 下创建启动项
# chkconfig sshd off # 在所有的运行级别下禁用 sshd |
Debian 和基于Debian 发行版像 Ubuntu 或 Knoppix 使用命令 update-rc.d 来管理运行级别脚本。默认启动为
2,3,4 和 5,停止为 0,1 和 6。
# update-rc.d sshd defaults # 设置 sshd 为默认启动级别
# update-rc.d sshd start 20 2 3 4 5 . stop 20 0 1 6 . # 用显示参数
# update-rc.d -f sshd remove # 在所有的运行级别下禁用 sshd
# shutdown -h now (或者 # poweroff) # 关闭停止系统 |
FreeBSD
BSD 启动步骤不同于 SysV, 她没有运行级别。她的启动状态(单用户,有或没有 XWindow)被配置在 /etc/
ttys中。所有的系统脚本都位于 /etc/rc.d/中,第三方应用程序位于 /usr/local/etc/rc.d/中。service 的启
动顺序被配置在 /etc/rc.conf 和/etc/rc.conf.local中。默认行为可在 /etc/defaults/rc.conf 中进行配
置。 这些脚本至少响应 start|stop|status.
# /etc/rc.d/sshd status
sshd is running as pid 552.
# shutdown now # 进入单用户模式
# exit # 返回到多用户模式
# shutdown -p now # 关闭停止系统
# shutdown -r now # 重新启动系统 |
同样可以使用进程 init 进入下列状态级别。举个例子: # init 6 为重启。
0 停止系统并关闭电源 (信号 USR2)
1 进入单用户模式 (信号 TERM)
6 重新启动 (信号 INT)
c 阻止进一步登录 (信号 TSTP)
q 重新检查 ttys(5) 文件 (信号 HUP)
在FreeBSD下,查看系统的内核安全级别可以用命令:
sysctl -a |grep securelevel