关于systemd和sysvinit的说明

2024-05-07 10:38
文章标签 说明 systemd sysvinit

本文主要是介绍关于systemd和sysvinit的说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天我在试验http://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html中所介绍的搭建日志数据库的方法时,博文中要求在启动Apache服务时使用# /etc/init.d/httpd start或者# chkconfig httpd on,而实际在使用它们的时候却遇到了一些问题,下面是我在CentOS Linux release 7.0.1406 (Core)(使用cat /etc/cento-release查看) 下运行的结果:

(1)、/etc/init.d/httpd start


无法使用该命令启动,为了探究原因,我进入到/etc/init.d目录下后,可以看到该目录下包括:

只有很少的几个,而其中的README中介绍了为什么上面启动服务失败的原因:其内容为:


大意为:我们现在使用的是一个基于systemd的系统,在这个系统中传统的init脚本已经被本地(native:本地,原生)systemd服务文件所取代,该服务文件和init脚本提供了非常相似的功能。要使用服务文件只需要使用systemctl命令,它将会输出一系列所有当前正在运行的服务(和其他单元:其实就是服务),使用systemctl list-unit-files可以得到所有已知的单元/服务文件,包括停止的,禁用的和标记的,使用systemctl start来开始服务,使用systemctl stop来停止服务,更多的介绍参见systemctl(1);

而且传统的init脚本继续可用,一个初始化脚本/etc/rc.d/init.d/foobar(/etc/rc.d:控制不同的启动级别运行的服务的启动脚本)在系统初始化的时候隐式地被映射到服务单元foobar.service。


所以说centos关于系统的服务现在的控制方式是使用systemd来实现。

(2)chkconfig

而使用chkconfig来启动httpd的运行结果为:


可以看出其本身也是通过systemd来实现的,

而使用chkconfig httpd来查看httpd是否开启的结果为:


可看出仍然是通过systemctl实现的。

根据https://wiki.archlinux.org/index.php/Systemd_(简体中文)中的介绍,所有可用的单元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 目录(后者优先级更高),更多systemd配置和功能的详细介绍可以到本文查看。


chkconfig --list的功能是列出所有的系统服务,在这里的运行结果为:


原因其自己也做了解释,我们可以看到列出的几个服务都是/etc/init.d中现有的服务;

(3)、关于systemd

这是http://www.zhihu.com/question/25873473(为什么systemd有如此大的争议中的一张图):


可以看出pstree打印出的进程数中systemd取代了传统init的位置。”再引用该文中的一段话:(对为什么反对systemd)变动太大,管理员认为没啥必要 之前的init用的好好的。各个软件有熟悉的配置。现在systemd干的活有点太多了,syslogd的工作也做,udevd的工作也做,连lxc的工作都想抢,自带nspawn,甚至霸道到要求只能通过systemd来管理cgroup。管理员们需要从头再学习如何配置linux,而且文档还很少,新的配置又令人很迷惑,比如pts的配置,想搞懂只能去读代码。我个人站在开发角度觉得systemd tm太难debug了,扯上个dbus,还要去研究dbus如何调试。“




更多详细的关于systemd的介绍:

https://wiki.archlinux.org/index.php/Systemd_(简体中文):是systemd的wiki详细介绍;

http://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html:IBM的浅析 Linux 初始化 init 系统,第 3 部分: Systemd;

http://www.zhihu.com/question/25873473:(知乎)systemd 为什么会有那么大的争议?

http://www.infoq.com/cn/news/2014/12/debian-fork-devuan:Systemd的争议引起Debian社区分裂

http://zh.wikipedia.org/wiki/Systemd:是systemd的维基百科中的简短介绍

这篇关于关于systemd和sysvinit的说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967113

相关文章

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用

Spring Boot Actuator使用说明

《SpringBootActuator使用说明》SpringBootActuator是一个用于监控和管理SpringBoot应用程序的强大工具,通过引入依赖并配置,可以启用默认的监控接口,... 目录项目里引入下面这个依赖使用场景总结说明:本文介绍Spring Boot Actuator的使用,关于Spri

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.