Ubuntu的runlevel

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
guluo
帖子: 14
注册时间: 2016-06-22 9:41
系统: windows7

Ubuntu的runlevel

#1

帖子 guluo » 2017-04-25 21:26

我想知道Ubuntu的默认runlevel是在哪里设置的?
我的系统的是Ubuntu16.04LTS,根据网上查阅的资料显示Ubuntu启动的时候init进程会读取/etc/init/下的配置文件,其中rc-sysinit.conf中设置的默认runlevel=2,但是启动完成之后,我利用runlevel命令显示的是N 5.
在我心里有一方净土,即使在别人看来寸草不生,但也一尘不染。
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: Ubuntu的runlevel

#2

帖子 vickycq » 2017-04-25 21:31

guluo 写了:我想知道Ubuntu的默认runlevel是在哪里设置的?我的系统的Ubuntu16.04LTS
Ubuntu 16.04 LTS 使用 systemd 替代 sysvinit,不存在运行级的概念。
快速了解 systemd 常用命令:https://linuxtoy.org/archives/systemd-cheatsheet.html
guluo 写了:但是启动完成之后,我利用runlevel命令显示的是N 5.[/u]

代码: 全选

# ll /sbin/runlevel
lrwxrwxrwx 1 root root 14 Mar 29 03:23 /sbin/runlevel -> /bin/systemctl
在systemd工具集中,runlevel 是 /bin/systemctl的符号链接。 它是向后兼容的垫片,简单来说是调用systemd的主命令行界面:systemctl。
guluo 写了:其中rc-sysinit.conf中设置的默认runlevel=2
如果您希望设置 runlevel=2 以开机默认进入字符界面,可执行命令 systemctl set-default multi-user.target。如果您希望恢复默认进入图形界面,可执行命令 systemctl set-default graphical.target。

systemd 中 target 与传统 runlevel 的对应关系如图
action_table[_ACTION_MAX] = {
[ACTION_HALT] = { SPECIAL_HALT_TARGET, "halt", "replace-irreversibly" },
[ACTION_POWEROFF] = { SPECIAL_POWEROFF_TARGET, "poweroff", "replace-irreversibly" },
[ACTION_REBOOT] = { SPECIAL_REBOOT_TARGET, "reboot", "replace-irreversibly" },
[ACTION_KEXEC] = { SPECIAL_KEXEC_TARGET, "kexec", "replace-irreversibly" },
[ACTION_RUNLEVEL2] = { SPECIAL_MULTI_USER_TARGET, NULL, "isolate" },
[ACTION_RUNLEVEL3] = { SPECIAL_MULTI_USER_TARGET, NULL, "isolate" },
[ACTION_RUNLEVEL4] = { SPECIAL_MULTI_USER_TARGET, NULL, "isolate" },
[ACTION_RUNLEVEL5] = { SPECIAL_GRAPHICAL_TARGET, NULL, "isolate" },
[ACTION_RESCUE] = { SPECIAL_RESCUE_TARGET, "rescue", "isolate" },
[ACTION_EMERGENCY] = { SPECIAL_EMERGENCY_TARGET, "emergency", "isolate" },
[ACTION_DEFAULT] = { SPECIAL_DEFAULT_TARGET, "default", "isolate" },
[ACTION_EXIT] = { SPECIAL_EXIT_TARGET, "exit", "replace-irreversibly" },
[ACTION_SUSPEND] = { SPECIAL_SUSPEND_TARGET, "suspend", "replace-irreversibly" },
[ACTION_HIBERNATE] = { SPECIAL_HIBERNATE_TARGET, "hibernate", "replace-irreversibly" },
[ACTION_HYBRID_SLEEP] = { SPECIAL_HYBRID_SLEEP_TARGET, "hybrid-sleep", "replace-irreversibly" },
};
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
guluo
帖子: 14
注册时间: 2016-06-22 9:41
系统: windows7

Re: Ubuntu的runlevel

#3

帖子 guluo » 2017-04-25 22:17

vickycq 写了:
guluo 写了:我想知道Ubuntu的默认runlevel是在哪里设置的?我的系统的Ubuntu16.04LTS
Ubuntu 16.04 LTS 使用 systemd 替代 sysvinit,不存在运行级的概念。
快速了解 systemd 常用命令:https://linuxtoy.org/archives/systemd-cheatsheet.html
guluo 写了:但是启动完成之后,我利用runlevel命令显示的是N 5.[/u]

代码: 全选

# ll /sbin/runlevel
lrwxrwxrwx 1 root root 14 Mar 29 03:23 /sbin/runlevel -> /bin/systemctl
在systemd工具集中,runlevel 是 /bin/systemctl的符号链接。 它是向后兼容的垫片,简单来说是调用systemd的主命令行界面:systemctl。
guluo 写了:其中rc-sysinit.conf中设置的默认runlevel=2
如果您希望设置 runlevel=2 以开机默认进入字符界面,可执行命令 systemctl set-default multi-user.target。如果您希望恢复默认进入图形界面,可执行命令 systemctl set-default graphical.target。

systemd 中 target 与传统 runlevel 的对应关系如图
action_table[_ACTION_MAX] = {
[ACTION_HALT] = { SPECIAL_HALT_TARGET, "halt", "replace-irreversibly" },
[ACTION_POWEROFF] = { SPECIAL_POWEROFF_TARGET, "poweroff", "replace-irreversibly" },
[ACTION_REBOOT] = { SPECIAL_REBOOT_TARGET, "reboot", "replace-irreversibly" },
[ACTION_KEXEC] = { SPECIAL_KEXEC_TARGET, "kexec", "replace-irreversibly" },
[ACTION_RUNLEVEL2] = { SPECIAL_MULTI_USER_TARGET, NULL, "isolate" },
[ACTION_RUNLEVEL3] = { SPECIAL_MULTI_USER_TARGET, NULL, "isolate" },
[ACTION_RUNLEVEL4] = { SPECIAL_MULTI_USER_TARGET, NULL, "isolate" },
[ACTION_RUNLEVEL5] = { SPECIAL_GRAPHICAL_TARGET, NULL, "isolate" },
[ACTION_RESCUE] = { SPECIAL_RESCUE_TARGET, "rescue", "isolate" },
[ACTION_EMERGENCY] = { SPECIAL_EMERGENCY_TARGET, "emergency", "isolate" },
[ACTION_DEFAULT] = { SPECIAL_DEFAULT_TARGET, "default", "isolate" },
[ACTION_EXIT] = { SPECIAL_EXIT_TARGET, "exit", "replace-irreversibly" },
[ACTION_SUSPEND] = { SPECIAL_SUSPEND_TARGET, "suspend", "replace-irreversibly" },
[ACTION_HIBERNATE] = { SPECIAL_HIBERNATE_TARGET, "hibernate", "replace-irreversibly" },
[ACTION_HYBRID_SLEEP] = { SPECIAL_HYBRID_SLEEP_TARGET, "hybrid-sleep", "replace-irreversibly" },
};
那系统再启动的时候是依据什么来选择runlevel*.target文件的?会不会有一个默认的选择文件?
在我心里有一方净土,即使在别人看来寸草不生,但也一尘不染。
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: Ubuntu的runlevel

#4

帖子 poloshiao » 2017-04-25 22:47

我想知道Ubuntu的默认runlevel是在哪里设置的?
試試
在 grub 2 開機選單 選擇 有 (upstart) 的 開機選項
(限於 Ubuntu 16.04 及 以前的版本)
头像
vickycq
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
联系:

Re: Ubuntu的runlevel

#5

帖子 vickycq » 2017-04-25 23:19

guluo 写了:那系统再启动的时候是依据什么来选择runlevel*.target文件的?会不会有一个默认的选择文件?
当您执行 systemctl set-default multi-user.target 时,/lib/systemd/system/multi-user.target 被软链接到 /etc/systemd/system/default.target,从而成为默认的 target。

代码: 全选

# ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 36 Nov 21 16:01 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
回复