systemd
systemd 是linux电脑操作系统之下的一套中央化系统及设置管理程序(init),包括有守护进程、程序库以及应用软件,其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的 ‘并行启动‘,同时达到降低Shell的系统开销的效果,最终代替system B与BSD风格init程序。
systemd 一名源于Unix中的一个惯例:在Unix中常以‘d‘作为系统守护进程的后缀表示。
默认init程序为systemd的发行版
Fedora 15及后续版本
#Fedora Linux 是较具知名度的Linux发行套件之一,由Fedora专案社群开发、红帽公司赞助,目标是建立一套新颖、多功能并且自由(开放原始码)的作业系统。
Mageia 2
#Mageia是一个非营利组织及其主导的Linux发行版的名称。
Mandriva 2011
#Mandriva Linux是一个由Mandriva开发的Linux发行版,它使用RPM包管理器及KDE SC、GNOME等桌面环境。每个发布版本提供12个月的桌面软件更新,以及18个月的基础组件更新。
openSUSE 12.1 及后续版本
#openSUSE,前身为SUSE Linux和SuSE Linux Professional,是一个Linux发行版与项目,它的开发重心是为软件开发者和系统管理者创造适用的开放源代码的工具,并提供易于使用的桌面环境和功能丰富的服务器环境。openSUSE针对桌面环境进行了一系列的优化,是一个对Linux新手较为友好的Linux发行版。
Red Hat Enterprise Linux 7及后续版本,包括其派生品CentOS、Scientific Linux、Oracle Linux等
#Red Hat Enterprise Linux(RHEL)是一个由Red Hat开发的商业市场导向的Linux发行版。红帽公司从 Red Hat Enterprise Linux 5 开始对企业版 LINUX 的每个版本提供 10 年的支持。Red Hat Enterprise Linux 常被简称为 RHEL,但它并非官方名称。
Arch Linux在2012年10月13日将systemd-sysvcompat纳入base软件组,自此Arch Linux默认安装完即以systemd为init程序,同时也提供了与Arch自带启动脚本兼容用的systemd启动脚本包以方便用户,使用户能“开箱即用”。
#Arch Linux 是一款基于 x86-64 架构的 Linux发行版。系统主要由自由和开源软件组成,支持社区参与。系统设计以 KISS原则(保持简单和愚蠢)为总体指导原则,注重代码正确、优雅和极简主义,期待用户愿意去理解系统的运作。Arch Linux 采用pacman作为预设的软件包管理器。
Chakra GNU/Linux,在2012.10的光盘映像档发布后默认使用systemd。
#Chakra GNU/Linux,是 Chakra 专案发行的半滚动发行版,专注于 KDE 软件。Chakra GNU/Linux 分支自 ArchLinux,目标是提供高质量的 Live DVD,和一个基于 KDE/Qt 和 KISS 原则的桌面操作系统。
Debian GNU/Linux,在2014年的技术委员会的init系统投票中决定在Debian 8“Jessie”中以Linux为核心的版本转换到systemd。
#Debian()是完全由自由软件组成的类UNIX作业系统,其包含的多数软件使用GNU通用公共许可协议授权,并由Debian计划的参与者组成团队对其进行打包、开发与维护。
Ubuntu 15.04及后续版本
#Ubuntu 是以桌面应用为主的Linux发行版,Ubuntu由Canonical公司发布,Ubuntu是著名的Linux发行版之一,它也是当前最多用户的Linux版本,用户数超过10亿人(含服务器、手机与其分支版本)。
systemd进程管理
systemd优势
1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)
2.CentOS7 支持开机并行启动服务,显著提高开机启动效率
3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。
4.CentOS7服务的启动与停止不在使用脚本进行管理,也就是/etc/init.d下不在有脚本。
5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。
systemd 相关文件
| 相关文件 |
CentOS6 |
CentOS7 |
| 服务启动脚本存放路径 |
/etc/init.d |
/usr/lib/systemd/system |
| 开机自启服务存放路径 |
/etc/rcN.d |
/etc/systemd/system/N.target.wants |
| 默认运行级别 |
/etc/inittab |
/etc/systemd/system/default.target |
systemd启动相关命令
| system V init CentOS6 |
systemd CentOS7 |
作用 |
| /etc/init.d/nginx start |
systemctl start nginx |
启动nginx服务 |
| /etc/init.d/nginx stop |
systemctl stop nginx |
停止nginx服务 |
| /etc/init.d/nginx status |
systemctl status nginx |
查看服务的启动状态 |
| /etc/init.d/nginx restart |
systemctl restart nginx |
重启服务 |
| /etc/init.d/nginx reload |
systemctl reload nginx |
不停止服务,重新加载nginx配置文件 |
|
systemctl is-acvite nginx |
判断nginx服务是否存活 |
|
systemctl mask nginx |
禁止服务运行 |
|
systemctl unmask nginx |
取消禁止 |
systemd开机自启动相关命令
| C6 |
C7 |
作用 |
| chkconfig --list |
systemctl list-unit-files |
查看开机自启的服务 |
| chkconfig nginx on |
systemctl enable nginx |
加入开机自启动 |
| chkconfig nginx off |
systemctl disable nginx |
关闭开机自启动 |
| chkconfig --list nginx |
systemctl is-enabled nginx |
查看指定服务是否被开机自启 |
| chkconfig --add nginx |
systemctl daemon-reload |
当我们手写脚本时让系统认识 |
systemd服务状态
| 服务状态 |
状态说明 |
| loaded |
服务单元的配置文件已经被处理 |
| active(running) |
服务的一个或多个进程在运行中 |
| active(exited) |
一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出) |
| active(waiting) |
服务已经运行但在等待某个事件 |
| inactive |
服务没有在运行 |
| enable |
服务设定为开机运行 |
| disabled |
服务设定为开机不运行 |
| static |
服务不能被设定开机启动,但可以由其他服务启动该服务 |
systemd
原文:https://www.cnblogs.com/mdddm/p/12945285.html