Loading... <div class="post clearfix"> <p><strong>PS:RHEL7和CentOS7出来有一段时间了,拿出点时间研究下,有几个地方跟6和5系列相比改变比较大,估计不少童鞋有点不太习惯。下面简要举例说明改变比较大的要点:</strong></p> <p><strong>一、CentOS的Services使用了systemd来代替sysvinit管理</strong></p> <p>1、systemd的服务管理程序:<br /> systemctl是主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。<br /> systemctl可以列出正在运行的服务状态,如图:</p> <p><img class="alignnone size-full wp-image-5659" title="systemctl" src="//cto.wang/usr/uploads/2016/07/20160703180048-50.jpg" alt="" width="1028" height="440" /></p> <p>systemd-cgls以树形列出正在运行的进程,它可以递归显示控制组内容。如图:</p> <p><img class="alignnone size-full wp-image-5660" title="systemd-cgls" src="//cto.wang/usr/uploads/2016/07/20160703180048-40.jpg" alt="" width="941" height="416" /></p> <p>2、如何启动/关闭、启用/禁用服务?<br /> 启动一个服务:<code>systemctl start postfix.service</code><br /> 关闭一个服务:<code>systemctl stop postfix.service</code><br /> 重启一个服务:<code>systemctl restart postfix.service</code><br /> 显示一个服务的状态:<code>systemctl status postfix.service</code><br /> 在开机时启用一个服务:<code>systemctl enable postfix.service</code><br /> 在开机时禁用一个服务:<code>systemctl disable postfix.service</code><br /> 查看服务是否开机启动:<code>systemctl is-enabled postfix.service;echo $?</code><br /> 查看已启动的服务列表:<code>systemctl list-unit-files|grep enabled</code></p> <p>说明:启用服务就是在当前“runlevel”的配置文件目录/etc/systemd/system/multi-user.target.wants/里,建立/usr/lib/systemd/system里面对应服务配置文件的软链接;禁用服务就是删除此软链接。如图:</p> <p><img class="alignnone size-full wp-image-5661" title="disable-postfix.service" src="//cto.wang/usr/uploads/2016/07/20160703180048-69.jpg" alt="" width="733" height="188" /><br /> 查看了/usr/lib/systemd/system 里的文件,语法跟旧版/etc/init.d/里的系统服务脚本完全不同了。</p> <p><strong>二、修改系统运行级别:</strong></p> <p>1、systemd使用比sysvinit的运行级更为自由的target替代。第3运行级用multi-user.target替代。第5运行级用graphical.target替代。runlevel3.target和runlevel5.target分别是指向 multi-user.target和graphical.target的符号链接。<br /> 可以使用下面的命令切换到“运行级别3 ”:<br /> <code>systemctl isolate multi-user.target或systemctl isolate runlevel3.target</code><br /> 可以使用下面的命令切换到“运行级别5 ”:<br /> <code>systemctl isolate graphical.target或systemctl isolate runlevel5.target</code></p> <p>2、如何改变默认运行级别?<br /> systemd使用链接来指向默认的运行级别。在创建新的链接前,可以通过下面命令删除存在的链接: rm /etc/systemd/system/default.target<br /> 默认启动运行级别3 :<br /> <code>ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target</code><br /> 默认启动运行级别5 :<br /> <code>ln -sf /lib/systemd/system/graphical.target/etc/systemd/system/default.target</code><br /> systemd不使用/etc/inittab文件。</p> <p>3、如何查看当前运行级别?<br /> 旧的runlevel命令在systemd下仍然可以使用。可以继续使用它,尽管systemd使用 ‘target’ 概念(多个的 ‘target’ 可以同时激活)替换了之前系统的runlevel。<br /> 等价的systemd命令是systemctl list-units –type=target</p> <p><strong>三、其他配置工具:</strong></p> <p>1、setup和ntsysv工具还是保留了,但是功能已大大减弱,以前ntsysv工具可以控制所有系统服务的自启动,现在只能控制少部分服务。<br /> 2、/etc/resolv.conf这个DNS配置文件没变。<br /> 3、/etc/sysconfig/network-scripts/ifcfg-ens192网卡配置文件名字和一些选项有所变化。<br /> 4、引导方式改用grub2引导,grub2有如下特点:1、模块化设计;2、支持多体系硬件架构;3、支持国际化多语言;4、独立内存管理;5、支持脚本语言。</p> <p>附:systemd简介<br /> systemd是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布。其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序。<br /> 与多数发行版使用的System V风格init相比,systemd采用了以下新技术:<br /> 采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;<br /> 用cgroups代替PID来追踪进程,以此即使是两次fork之后生成的守护进程也不会脱离systemd的控制。<br /> 从设计构思上说,由于systemd使用了cgroup与fanotify等组件以实现其特性,所以只适用于Linux。</p> <p><img class="alignnone size-full wp-image-5663" title="Linux_kernel_unified_hierarchy_cgroups_and_systemd.svg" src="//cto.wang/usr/uploads/2016/07/20160703180048-37.png" alt="" width="1024" height="640" /></p> <p><img class="alignnone size-full wp-image-5664" title="Systemd_components.svg" src="//cto.wang/usr/uploads/2016/07/20160703180048-53.png" alt="" width="720" height="405" /></p> <p>更详细的systemd介绍请参考:http://en.wikipedia.org/wiki/Systemd</p> </div> <h2 class="postendmeta">原文链接 : http://www.ha97.com/5657.html</h2> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信