引导和服务(2)

本文详细介绍了Systemd服务管理的核心概念,包括其简要介绍、新特性如并行启动、按需启动和自动化依赖管理,涵盖了unit类型、systemctl命令及其应用场景,以及如何让Nginx在CentOS6和7中被systemd管理。
摘要由CSDN通过智能技术生成

目录

服务

1.systemd服务的简要介绍

2.Systemd新特性

3.systemd管理的程序

4.Systemd单元类型

5.systemctl 常用命令

 6.运行级别

7.service  unit  文件格式

8.实验


服务

1.systemd服务的简要介绍

(1)对比5 6 可以解决依赖关系并行启动

(2)按需启动

(3)自动解决依赖关系

负责在系统启动或运行时,激活系统资源,服务器进程和其它进程

2.Systemd新特性

1.系统引导时实现服务并行启动,2.按需启动守护进程,3.自动化的服务依赖关系管理,4.同时采用socket式与D-Bus总线式激活服务,5.socket与服务程序分离,6.向后兼容sysv init脚本,7.使用systemctl 命令管理,systemctl命令固定不变,不可扩展,非由systemd启动的服务,8.systemctl无法与之通信和控制,9.系统状态快照

systemd 核心概念:unit

unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听

socket、保存的系统快照以及其它与init相关的信息

3.systemd管理的程序

(1)系统必要的程序

(2)yum  rpm  安装的程序

(3)编译安装的程序,需要手写配置文件后才可以

4.Systemd单元类型
单元类型护展名说明
Service.service描述一个系统服务软件
Socket.socket描述一个进程间通信的套接字
Device.device描述一个内核识别的设备文件
Mount.mount描述一个文件系统的挂载点
Automoun.automount描述一个文件系统的自动挂载点
Swap.swap描述一个内存交换设备或目录
Timer.timer描述一个定时器(用于实现类似cron的调度任务)
Path.path描述一个文件系统中文件或目录(path 路径)
Snapshot.snapshot用于保存一个systemd的状态(snapshot 快照)
Scope.scope使用systemd的总线接口以编程的方式创建外部进程
Slice.slice描述居于Cgroup的一组通过层次组织的管理系统进程
Target.target描述一组systemd的单元(target 目标)
5.systemctl 常用命令
命令说明

systemctl   start   服务名

开启服务

systemctl   stop    服务名

  关闭服务

systemctl   status 服务名

查看服务状态

systemctl  restart   服务

 重启服务

systemctl  reload     服务

 重启加载服务,不影响客户使用

systemctl  enable   服务

 开机自启

systemctl  disable   服务

关闭开机自启

systemctl  enable  --now  服务

开机自启,并立即启动

systemctl  disable  --now  服务

关闭开机自启,并立即关闭

systemctl  damon - reload  加载新服务让系统识别
 6.运行级别

运行级别所对应的Systemd目标

运行级别Systemd的target说明
0target关机状态,使用该级别时会关闭主机
1rescue.target单用户模式,不需要密码验证即可登录系统,多用于系统维护
2multi-user.target用户定义/域特定运行级别。默认等同于3
3multi-user.target字符界面的完整多用户模式,大多数服务器主机运行在此级别
4multi-user.target用户定义/域特定运行级别。默认等同于3
5garphical.target图形界面的多用户模式,提供了图形桌面操作环境
6reboot.target重新启动,使用该级别时将会重启主机

runlevel 查看目前的运行级别

[root@localhost ~]# runlevel
N 5

N:代表没有切换过级别

5:图形界面,当前级别

输入init  3

7.service  unit  文件格式

unit 格式说明:

(1)以 “#” 开头的行后面的内容会被认为是注释

(2)相关布尔值,1、yes、on、true 都是开启,0、no、off、false 都是关闭

(3)时间单位默认是秒,所以要用毫秒(ms)分钟(m)等须显式说明

service unit file文件通常由三部分组成:

(1)[Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等

(2)[Service]:与特定类型相关的专用选项;此处为Service类型

(3)[Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项

Unit段的常用选项:

(1)Description:描述信息

(2)After:定义unit的启动次序,表示当前unit应该晚于哪些unit启动,其功能与Before相反

(3)Requires:依赖到的其它units,强依赖,被依赖的units无法激活时,当前unit也无法激活

(4)Wants:依赖到的其它units,弱依赖

(5)Conflicts:定义units间的冲突关系

Service段的常用选项:

Type:定义影响ExecStart及相关参数的功能的unit进程启动类型

      *  simple:默认值,这个daemon主要由ExecStart接的指令串来启动,启动后常驻于内存中

      *forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。原生父程序在启动结束后就会终止

      *oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻在内存中

      *dbus:与simple类似,但这个daemon必须要在取得一个D-Bus的名称后,才会继续运作.因此通常也要同时设定BusNname= 才行

       *notify:在启动完成后会发送一个通知消息。还需要配合 NotifyAccess 来让 Systemd 接收消息

       *idle:与simple类似,要执行这个daemon必须要所有的工作都顺利执行完毕后才会执行。这类的daemon通常是开机到最后才执行即可的服务

EnvironmentFile:环境配置文件

ExecStart:指明启动unit要运行命令或脚本的绝对路径

ExecStartPre: ExecStart前运行

ExecStartPost: ExecStart后运行

ExecStop:指明停止unit要运行的命令或脚本

Restart:当设定Restart=1 时,则当次daemon服务意外终止后,会再次自动启动此服务

RestartSec: 设置在重启服务( Restart= )前暂停多长时间。 默认值是100毫秒(100ms)。 如果未指

定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。

PrivateTmp:设定为yes时,会在生成/tmp/systemd-private-UUID-NAME.service-XXXXX/tmp/目录

Install段的常用选项:

Alias:别名,可使用systemctl command Alias.service

RequiredBy:被哪些units所依赖,强依赖

WantedBy:被哪些units所依赖,弱依赖

Also:安装本服务的时候还要安装别的相关服务

8.实验

使得nginx能够被systemd管理

8.1 centos6,使用chkconfig

(1)编译安装

(2)建立软连接

(3)编辑脚本,添加权限,将nginx服务加入

脚本:

#!/bin/bash 
#chkconfig: - 99 20 
#description:Nginx Service Control Script 
PROG="/usr/local/nginx/sbin/nginx" 
PIDF="/usr/local/nginx/logs/nginx.pid" 

case "$1" in
start) $PROG 
;; 
stop) 
kill -s QUIT $(cat $PIDF) 
;; 
restart) 
$0 stop $0 start
;; 
reload) 
kill -s HUP $(cat $PIDF) 
;;
*) echo "Usage: $0 {start|stop|restart|reload}" 
exit 1 
esac 
exit 0

8.2centos7 使用systemctl 

 (1)编译安装

(2)建立软链接

(3)编写配置文件

vim  /lib/systemd/system/nginx.service 

(4)加载新服务让系统识别,并开关服务查看服务状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值