背景
本人电脑是10多年前的神舟小本本(双核四线程,2G内存),Windows是带不动的,Linux也勉为其难,为了让系统更快点,因而研究把运行级别设置为终端模式(不带图形界面)。
OS |
jwllinux@jwlLinux ~ $ lsb_release -a LSB Version: core-9.20160110ubuntu0.2-ia32:core-9.20160110ubuntu0.2-noarch:cxx-3.0-ia32:cxx-3.0-noarch:cxx-3.1-ia32:cxx-3.1-noarch:cxx-3.2-ia32:cxx-3.2-noarch:cxx-4.0-ia32:cxx-4.0-noarch:cxx-4.1-ia32:cxx-4.1-noarch:security-9.20160110ubuntu0.2-ia32:security-9.20160110ubuntu0.2-noarch Distributor ID: LinuxMint Description: Linux Mint 18 Sarah Release: 18 Codename: sarah |
CPU |
jwllinux@jwlLinux /lib/systemd/system $ lscpu Architecture: i686 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 |
内存 |
jwllinux@jwlLinux /lib/systemd/system $ cat /proc/meminfo | grep -i memtotal | awk -F " " '{print $2/1024/1024 "GB"}' 1.89236GB |
Systemd简述
相信很多人都了解,最初的Linux启动1号进程为initd,后面发展成为systemd。Systemd为系统的启动和管理提供一整套的完整解决方案。其架构如下:
术语:
Uint:Systemd管理的一个资源单位就是Unit;
Target:一组管理的Unit就是Target;当启动某个target时,systemd就根据对应target的配置文件(如runlevel6.target启动其一组相互关联的Uint);
相关命令
Systemd是一整套系统的启动和管理解决方案,因而相关命令繁多,参数众多。好在项目组提供systemd.index帮助手册,可以查阅systemd项目的所有manpages,请参阅man systemd.index。
与本文关联较大的常用命令有:
- 获取默认的启动target
jwlLinux system # systemctl get-default multi-user.target |
- 获取当前的启动层级(prints the previous and current SysV runlevel if they are known.)
jwlLinux system # runlevel N 3 |
启动层级说明:
Linux 系统运行层级分为七个层级,分别用0~6表示;
Runlevel |
Target |
简述 |
0 |
poweroff.target |
关机 |
1 |
rescue.target |
安全模式 |
2, 3, 4 |
multi-user.target |
多用户终端模式 |
5 |
graphical.target |
图形模式 |
6 |
reboot.target |
重启模式 |
- 设置默认启动层级
jwlLinux system # systemctl set-default runlevel3.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /lib/systemd/system/multi-user.target. |
说明:
从上面的日志可以看出(实际也是),systemd的默认配置目录为/etc/systemd/system/(系统管理模块)。但此目录的文件大部分是符号链接,直接的文件内容在/lib/systemd/system/目录;
jwlLinux system # ls -rlht /etc/systemd/system/default.target lrwxrwxrwx 1 root root 37 Nov 27 14:35 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target |
- 命令行模式下如何实现本地登录?
在设置runlevel为终端模式并重启后,读者会发现系统起来后全为黑屏,那该如何登录到自己的系统呢?有如下两种方式:
- ssh远程登录
- ttyN控制台终端(通过快捷键ctrl + alt + F1~F5唤醒)
其他系统说明
- Redhat 7以前的一号进程是initd,其相关配置为:
/etc/inittab
- Redhat7开始到后面也是使用systemd作为1号进程;