我们在平时的编程学习中,或多或少,或早或晚,都要接触到linux服务器;
但是很多小白对linux服务器的启动与初始化过程并不是很清楚;
通过本文知识,让我们花5分钟时间彻底搞懂它,相信聪明的你,看完一定会有收获!
【正文开始】
linux服务器的启动,共分为 5 个阶段:
1、内核引导:
即读入 /boot 目录内核文件
2、运行init进程:
init 进程是系统所有进程的起点,没有这个进程系统中任何进程都不会启动。
Linux中有很多"守护进程"(daemon,类似于windows中的"service服务)需要开机启动。init进程负责去运行这些开机启动程序
3、系统初始化:
不同的场合需要启动不同的守护进程(比如:用作服务器时需要启动Apache,用作桌面就不需要)
Linux允许为不同的场合分配不同的开机启动程序,这就是"运行级别"。
Linux系统共有 7 个运行级别,分别是:
级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 (poweroff.target)
级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆(rescue.target)
级别2:多用户状态(没有NFS) (multi-user.target)
级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式(推荐级别)(multi-user.target)
级别4:系统未使用,保留(multi-user.target)
级别5:X11控制台,登陆后进入图形GUI模式(graphical.target)
级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动(reboot.target)
4个常用命令:
查看默认级别:systemctl get-default (服务器一般是多用户级别: multi-user.target)
修改默认级别: systemctl set-default rescue.target
查看当前级别:runlevel
修改当前级别:init 1 (1表示进入单用户紧急修复模式)
4、建立终端
初始化完成以后,init进程接下来会打开6个终端,以便用户登录系统。
mingetty程序能打开终端、设置模式。
同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而输入的用户名将作为参数传给login程序来验证用户的身份。
小知识:
如果你安装了图形界面,默认情况下是进入图形界面的,此时你就可以按Ctrl + Alt + F1 ~ F6来进入其中一个终端命令界面(Ctrl + Alt + F7则是返回图形界面)。
5、用户登录系统
一般来说,用户的登录方式有2种:
(1)图形界面登录:
对于运行级别为5的用户登录成功后可进入 KDE、Gnome 等窗口管理器。
(2)命令行登录
login程序会对用户名进行分析:如果用户名不是 root,且存在 /etc/nologin 文件,login 将输出 nologin 文件的内容,然后退出(这通常用来系统维护时防止非root用户登录)
只有在 /etc/securetty 文件中登记了的终端才允许 root 用户登录,如果不存在这个文件,则 root 用户可以在任何终端上登录。
/etc/usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制。
最后,顺便介绍一下 Linux 关机与重启:
linux大多用在服务器上,很少遇到关机操作。除非特殊情况下,不得已才会关机。
正确的关机流程为:sync > shutdown > reboot > halt
几个常用命令
shutdown –h now :立马关机 (等同于halt 或 poweroff 或 init 0)
shutdown –h +10 : 10分钟后关机
shutdown –h 20:25: 在今天20:25关机
shutdown –r now: 立即重启(等同于 reboot)
shutdown –r +10: 10分钟后重启
注意:不管是重启系统还是关闭系统,务必要先运行 sync 命令,把内存中的数据写到磁盘中,防止数据丢失。
【全文完】