systemd初始化进程(转)
Systemd初始化进程
Linux操作系统开机过程首先从BIOS开始→进入"Boot Loader"→加载内核→内核的初始化→启动初始化进程,初始化进程作为系统第一个进程,它需要完成相关的初始化工作,为用户提供合适的工作环境。
红帽RHEL7系统已经替换掉了大家熟悉的初始化进程System V init,并正式采用全新的初始化进程systemd。初始化进程systemd使用了并发启动机制,所以开机速度得到了不小的提升。虽然systemd已经表现出了优势,但一直有抵制的呼声:
吐槽1:因作者Lennart Poettering就职于红帽,让其他系统的粉丝很不爽。
吐槽2:systemd仅仅可在linux系统下运行,放弃了BSD用户。
吐槽3:接管了诸如syslogd、udev、cgroup等等服务的工作,不再甘心只做初始化进程。
吐槽4:使用systemd后RHEL7系统变化太大,参考文档又不多,为难我们啊!
不论怎么吐槽,既然红帽RHEL7系统选择了systemd,原先的inittab将已经不再起作用,也没有了“运行级别”这个概念,Linux系统启动时要做大量的初始化工作——例如挂载文件系统和交换分区,启动各类进程服务等等操作,这些都可以看作是一个个的单元(Unit),分析下nfs服务的单元配置文件吧:
[root@linuxprobe ~]# cat /etc/systemd/system/nfs.target.wants/nfs-lock.service
[Unit]
Description=NFS file locking service.
//表示rpcbind服务必须在nfs服务启动前已经运行。
Requires=rpcbind.service network.target
After=network.target named.service rpcbind.service
Before=remote-fs-pre.target
[Service]
Type=forking
StandardError=syslog+console
EnvironmentFile=-/etc/sysconfig/nfs
//启动nfs服务前需要执行的命令:
ExecStartPre=/usr/libexec/nfs-utils/scripts/nfs-lock.preconfig
//启动nfs服务具体的命令语法:
ExecStart=/sbin/rpc.statd $STATDARG
# Make sure lockd's ports are reset
ExecStopPost=-/sbin/sysctl -w fs.nfs.nlm_tcpport=0 fs.nfs.nlm_udpport=0
[Install]
WantedBy=nfs.target
如前面所述在红帽RHEL7系统中systemd用"目标(target)"代替了“运行级别”这个概念。
| Sysvinit运行级别 | 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 |
将默认的运行级别修改为“多用户,无图形模式”:
将默认的运行级别修改为“图形化模式”:
对于学习过红帽RHEL6系统或已经习惯使用service、chkconfig等命令来管理系统服务的读者可能要郁闷一段时间了,因为在红帽RHEL7系统中管理服务的命令是"systemctl",但使用方法大致相同,我们来做下对比吧。
systemctl管理服务的启动、重启、停止、重载、查看状态的命令:
| Sysvinit命令(红帽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 | 查看服务状态 |
systemctl设置服务的开机启动、不启动、查看各级别下服务启动状态的命令:
| Sysvinit命令(红帽RHEL6系统) | Systemctl命令(红帽RHEL7系统) | 作用 |
| chkconfig foo on | systemctl enable foo.service | 开机自动启动 |
| chkconfig foo off | systemctl disable foo.service | 开机不自动启动 |
| chkconfig foo | systemctl is-enabled foo.service | 查看特定服务是否为开机自启动 |
| chkconfig --list | systemctl list-unit-files --type=service | 查看各个级别下服务的启动与禁用情况 |
systemd初始化进程(转)的更多相关文章
- rpm软件包、yum软件仓库、systemd初始化进程
rpm软件包.yum软件仓库.systemd初始化进程 作者:Eric 微信:loveoracle11g 红帽软件包管理器rpm (Redhat Package Manager) RPM会建立统一的数 ...
- Systemd初始化进程/RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比
Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linux系统的第一个进程,它需要完成Li ...
- 1.7 Systemd初始化进程
1.7 Systemd初始化进程 Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linu ...
- RHEL7全新初始化进程管理systemd(图形启动和非图形启动切换)
红帽RHEL7系统已经替换了大家熟悉的初始化进程System V init,正式采用全新的 初始化进程systemd.初始化进程systemd使用了并发启动机制,所以开机速度上得到了不小的 提升. 将 ...
- 从零开始写一个前端脚手架四、初始化进程提示(chalk)
我们之前说过bin里面的index.js文件是作为入口文件存在的.实际上的初始化内容在.action里面操作的,为了方便管理,我们把实际操作的代码抽出来放一块儿管理 创建指令文件 在根目录创建一个co ...
- systemd --user进程CPU占用高问题分析
1.问题由来 近期发现堡垒机环境有如下问题,systemd占用大量cpu: 原文链接:https://www.cnblogs.com/yaohong/p/16046670.html 2.问题定位 2. ...
- systemd管理进程
systemd很强大的管理工具,这里简单用来管理一个进程: [Unit]Description=Imges Compress Server [Service]Type=simpleExecStart= ...
- Linux:使用systemd管理进程
Blog:博客园 个人 概述 systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能 ...
- Linux 使用 Systemd 管理进程服务
转载自:https://mp.weixin.qq.com/s/e-_PUNolUm22-Uy_ZjpuEA systemd 介绍 systemd是目前Linux系统上主要的系统守护进程管理工具,由于i ...
随机推荐
- css 实现三栏布局的四种方式
三栏布局就是左中右,左右两边固定,中间自适应. 1. 绝对定位 <div class="left">左边</div> <div class=" ...
- SQL数据库操作整理
1.规范 ①关键字与函数名称全部大写: ②数据库名称.表名称.字段名称全部小写: ③SQL语句必须以分号结尾. 2.数据库操作 // 1. 创建数据库,其中[]表示可以省略 CREATE { DATA ...
- Django路由与视图
路由层 一.路由匹配规则: 第一个参数是正则表达式,匹配规则按照从上往下一次匹配,匹配到一个之后立即匹配,直接执行对应的视图函数 url(r'login', views.login), 如果按上面的形 ...
- 异常HttpMessageNotWritableException解决办法
1. 问题描述 在写SpringBoot项目的时候,由于是前后端分离项目,为了统一接口形式,使用一个类封装了返回数据的形式,但是在测试的时候报异常HttpMessageNotWritableExcep ...
- B.Grid with Arrows-The 2019 ICPC China Shaanxi Provincial Programming Contest
BaoBao has just found a grid with $n$ rows and $m$ columns in his left pocket, where the cell in the ...
- P3823_[NOI2017]蚯蚓排队 哈希+脑子
之前就写过一遍,今天却写挂了,查了半天发现是数组名写错啦$qwq$ 观察到$K$很小,所以使得我们可以哈希(怎么什么都能哈希$qwq$).我们把长度小于等于$50$的子串扔到哈希表里,并统计出现次数, ...
- 根据不同环境配置pom
clean install clean package -P jt808_dev clean package -P tanway_test -X gps-parent <?xml version ...
- Excel打印区域设置
excel打印区域设置 在打印excel的时候,经常需要来设定打印区域,才能更好的打印我们所要的东西,那怎么设置了,这里做个记录,以备使用查看 1.首先选中你要打印的区域,拖动鼠标框选就可以.如图 选 ...
- js通过行列获取表格中input的值
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...
- nginx 添加https支持
自行颁发不受浏览器信任的SSL证书为晒晒IQ网颁发证书.ssh登陆到服务器上,终端输入以下命令,使用openssl生成RSA密钥及证书. # 生成一个RSA密钥 $ openssl genrsa -d ...