说在开头:文章是我通过查询资料后按照自己的理解总结出来的,所以如果有说法不对的地方,欢迎大佬指正~
RHEL7之前初始化进程服务用的是System V init,RHEL7开始使用systemd。
System V init 与 systemd 的区别
System V init 运行级别 | systemd 目标名称 | 作用 |
---|---|---|
0 | runlevel0.target,poweroff.target | 关机 |
1 | runlevel1.target,rescue.target | 单用户模式 |
2 | runlevel2.target,multi-user.target | 等同于级别3 |
3 | runlevel3.target,multi-user.target | 多用户的文本界面 |
4 | runlevel4.target,multi-user.target | 等同于级别3 |
5 | runlevel5.target,graphical.target | 多用户的图形界面 |
6 | runlevel6.target,reboot.target | 重启 |
emergency | emergency.target | 紧急shell |
书上的例子:
如果想要将系统默认的运行目标修改为“多用户,无图形”模式,可以直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录:
“ln -sf /lib/system/multi-user.target /etc/systemd/system/default.target”
- 其实对于上面的内容,我不知道这些命令具体怎么用,即使书上举了一个例子,我依然很迷糊。不过没关系,先继续往下走,说不定学到以后这些问题就迎刃而解了。
System V init 命令与 systemctl 命令的对比
System V init 命令(RHEL6系统) | systemctl 命令(RHEL7系统) | 作用 |
---|---|---|
service foo start | systemctl start foo.service | 启动服务 |
service foo restart | systemctl restart foo.service | 重启服务 |
service foo stop | systemctl stop foo.service | 停止服务 |
service foo reload | systemctl reload foo.service | 重新加载配置文件(不终止服务) |
service foo status | systemctl status foo.service | 查看服务状态 |
chkcongfig foo on | systemctl enable foo.service | 开机自动启动 |
chkcongfig foo off | systemctl disable foo.service | 开机不自动启动 |
chkcongfig foo | systemctl is-enabled foo.service | 查看特定服务是否为开机自动启动 |
chkcongfig --list | systemctl list-unit-files --type=service | 查看各个级别下服务 的启动与禁用情况 |
“.service”好像是可以省略的。
- 其实这些命令在我前面搭建LAMP环境的时候,在各个教程中都有见过,当时都不知道它们的含义,反正就按着教程输入命令就对了;
当时还在想,为啥实现每个教程中使用的命令不同?到底谁是对的?现在才知道原来是不同版本中的初始化进程服务不同。 - 但我还是存在一个问题,怎样判断我的Ubuntu、Kali使用的到底是哪个初始化进程服务呢?我刚才在网上粗略搜索了一下,好像没有得到明确的回答。老规矩,存疑,继续往下走。