关于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

相关文章

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

MySQL之复合查询使用及说明

《MySQL之复合查询使用及说明》文章讲解了SQL复合查询中emp、dept、salgrade三张表的使用,涵盖多表连接、自连接、子查询(单行/多行/多列)及合并查询(UNION/UNIONALL)等... 目录复合查询基本查询回顾多表查询笛卡尔积自连接子查询单行子查询多行子查询多列子查询在from子句中使

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

MySQL 临时表创建与使用详细说明

《MySQL临时表创建与使用详细说明》MySQL临时表是存储在内存或磁盘的临时数据表,会话结束时自动销毁,适合存储中间计算结果或临时数据集,其名称以#开头(如#TempTable),本文给大家介绍M... 目录mysql 临时表详细说明1.定义2.核心特性3.创建与使用4.典型应用场景5.生命周期管理6.注

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于