目录
一、systemd优势
1.并行处理所有服务,加速开机流程。
2.命令相对简单。
3.服务依赖性检测。
二、systemd的配置文件位置:
三、systemctl管理服务:
格式:
选项:
例:
四、查看系统上所有服务:
list-units:
list-unit-files:
五、切换操作环境:
1.图形化界面。
2.命令行模式。
3.救援模式。
4.紧急处理系统的错误
5.关机。
六、使用systemctl管理源码包nginx:
从centos7开始,systemd替代了之前版本中的init。使用systemd机制来管理服务。那么
在init启动流程中,服务是一项一项启动的。在systemd可以所有服务同时启动。
和之前的SystemV相比,所有操作都是systemctl命令来控制。而之前的systemV中有init、service、chkconfig等。
如果B服务是架构在A服务上启动的,当没有启动A服务时就先启动B服务的话,systemd会自动启动A服务。
/usr/lib/systemd/system/:服务启动脚本存放位置。
/run/systemd/system/:系统执行过程中产生的服务脚本。
/etc/systemd/system/:管理员根据自己主机系统的需求所创建的执行脚本。操作系统启动后到底会不会执行某些服务其实是看/etc/systemd/system/目录的。
基本上服务的管理都是通过systemctl命令来完成的。
systemctl:管理服务状态,开机是否启动等。
systemctl选项 执行服务的守护进程名称
start:启动服务。
stop:停止服务。
restart:重启。
reload:不关闭服务的情况下,重新读取服务配置文件。
enable:开机启动。
disable:开机不启动。
status:查看指定服务状态。
is-enable:查看指定服务是否为开机启动。enabled启动/disable不启动。
journalctl -xe 查看更为详细的服务状态
[root@localhost ~]# systemctlstatusatd.service #查看服务状态。
● atd.service- Job spooling tools
Loaded:loaded (/usr/lib/systemd/system/atd.service; disabled; vendor preset:enabled)
Active:active(running) since 四 2019-01-10 17:59:04 CST; 23min ago
Main PID: 20130 (atd)
Tasks: 1
CGroup:/system.slice/atd.service
└─20130 /usr/sbin/atd -f
1月 10 17:59:04 localhost.localdomain systemd[1]:Started Job spooling tools.
[root@localhost ~]# systemctl stop atd.service
后缀有以下几种:
.service:用来启动和控制守护进程和进程的服务单元。
.target:执行环境类型,也就是启动流程中的multi-user.target和graphical.target。相当于对服务和启动事项的一个分组。
命令:systemctl
选项:
显示当前启动unit,添加--all选项则列出启动和未启动的所有unit。
显示/usr/lib/systemd/system/的unit状态。
在centos7中虽然还是可以使用init * 的命令。但是已经没有了运行级别的概念。这种启动/运行级别的概念转变成了切换操作环境。那么我们 可以切换的操作环境有:
graphical.target:
multi-user.target:
rescue.target:
,需要使用root登录,再无法使用rescue.target的情况下可以尝试使用此模式。
emergency.target:
shutdown.target:
vim/usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx #服务描述
After=network.target #表示服务在network服务启动后启动
[Service]
Type=forking #表示后台运行模式
ExecStart=/usr/local/nginx/sbin/nginx #服务启动脚本位置
ExecReload=/usr/local/nginx/sbin/nginx -s reload #重新加载配置文件
ExecStop=/usr/local/nginx/sbin/nginx -s stop #停止服务
[Install]
WantedBy=multi-user.target #表示此unit依附于multi模式
【】# systemctl daemon-reload