我总是忘记如何做到这一点,如何更改服务器/守护进程的 inittab 运行级别?
答案1
有几个不同的地方。但是,以下内容应该涵盖了大部分内容:
检查 /etc/inittab 使用“chkconfig”命令来更新 rcX.d 目录以及指向 /etc/init.d 条目的符号链接。
答案2
要查看上一个和当前的运行级别,
[root@example ~]# runlevel
N 3
这里,没有以前的运行级别,当前运行级别是 3。
要临时更改运行级别,
[root@example ~]# init RUNLEVEL
要永久更改机器的默认运行级别,请更改 /etc/inittab 的
id:5:initdefault:
将 5 更改为您喜欢的级别。
如果您使用的是 RHEL 或 CentOS 等克隆发行版之一,则服务器的默认运行级别为 3,桌面的默认运行级别为 5,其中应自动启动 X。
如果您使用 Debian 或其各种分支,则默认运行级别为 2。
Ubuntu 已移至 upstart 任务选择程序,因此它可能缺少 /etc/inittab 并将默认使用运行级别 2。如果您想更改默认运行级别,请创建一个,或者您可以通过 grub 将运行级别作为启动的一部分传递。
要更改守护进程的运行级别:
如果您使用 RHEL 或其他基于 RPM 的发行版,chkconfig 可能是最方便的方法。
[root@example ~]# chkconfig --list ntpd
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@example ~]# chkconfig ntpd on
[root@example ~]# chkconfig ntpd off
[root@example ~]# chkconfig --level 2,5 ntpd on
如果您使用的是 Debian,我通常会手动更改每个运行级别的守护进程的状态。
[root@example ~]# ls /etc/rc2.d/*ntp*
/etc/rc2.d/S23ntp
[root@example ~]# cd /etc/rc2.d/
[root@example rc2.d]# mv K23ntpd S23ntpd
如果守护进程的符号链接以 K 开头,则它将在该运行级别停止。如果以 S 开头,则它将在该运行级别启动。
答案3
你实际上问了两个问题。
- 如何更改服务器的默认运行级别
- 如何更改守护进程运行的运行级别。
1 是由 Mark 回答的(他的答案)
2 将依赖于系统。在基于 RedHat 的系统(RH、YDL、Fedora 等)上,您将使用 chkconfig 来配置所有内容。例如,要让 apache 在运行级别 3、4 和 5 启动,您将运行:
chkconfig --levels 345 httpd on
在 gentoo 系统上,您可以使用 rc-update 工具,并运行以下命令:
rc-update add apache2 default
答案4
守护进程通常从 /etc/rc.d/ 或 /etc/init.d 中的脚本启动,从运行级别特定的目录 (例如 /etc/rc0.d 到 /etc/rc6.d) 有到相应启动脚本的符号链接
简而言之:从 /etc/rc.d 中的相应目录创建到守护进程的启动脚本的链接。链接的位置决定了运行级别。