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" },
};