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 ...
随机推荐
- 2017-10-15 NOIP模拟赛
Stack #include<iostream> #include<cstdio> #define mod 7 using namespace std; ][],n; int ...
- 玩转Android---组件篇---Intent(意图)
Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”. 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter&g ...
- DNS解析工具--nslookup和dig使用
1.nslookup使用 [root@master ~]# nslookup> server 8.8.8.8 #指定域名服务器Default server: 8.8.8.8Address: ...
- 面向对象OO第三单元总结
第三单元OO总结博客 1 梳理JML语言的理论基础.应用工具链情况 由于篇幅原因,这里只梳理几个在本单元常用的 注释结构 行注释://@annotation 块注释:/* @ annotation @ ...
- FoundToday for HK 技术支持
FoundToday for HK 技术支持 技术支持网址:有问题或建议请留言. 邮箱地址: swvrwafet@zoho.com Program design & system cons ...
- iconfont的应用
http://www.iconfont.cn/help/platform.html http://www.iconfont.cn/users/project 点击下载之后: 打开demo.html: ...
- haoi2018奇怪的背包题解
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=5302 对于一个物品,设它体积为v,那么,在背包参数为p的情况下,它能达到gcd(v,p ...
- Windows安装IIS后,启动网站报错:不能在此路径中使用此配置节……
在IIS里启动设置好的网站(ASP.net网站),浏览器报如下错误: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault= ...
- netstat命令怎么查看端口是否占用
转自:http://www.ahlinux.com/start/cmd/527.html netstat命令是一个监控TCP IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接 ...
- Murano 网址一览
[Murano_Meeting] http://eavesdrop.openstack.org/#Murano_Meeting [Murano_Meeting_Agenda] https://wiki ...