Linux学习笔记(七)-守护进程

systemd简介

在RHEL6中,系统的第一个进程(PID=1) 是init进程

在RHEL7中,系统的第一个进程是systemd, 是一个特殊的守护进程。

systemd比原来的init进程更强大:

1)并行化功能,提供系统的启动速度

2)能够按需要来启动守护进程

3)自动服务依赖管理,例如可在网路不可用时,不启动网路服务

systemd的单元类型

systemd是第一个进程,可处理多个system单元。

可以理解为:systemd包含多个“组件”,每个组件,就是一个“单元”。

在shell中,使用systemctl命令来管理system单元。

system单元,分多种类型:

# systemctl  -t  help

查看所有可用的systemd单元的类型。

常用的systemd单元类型:

1)服务单元

扩展名为 .service

服务单元,用来启动对应的“守护进程”。

2)套接字单元

扩展名为.socket

表示进程间通信的套接字,可用于延时启动的服务、按需启动的服务。

3)目标单元

扩展名为.target

target单元,相当于RHEL6中的运行级别。

启动开机时,必须选择一种targe单元进行启动

管理目标单元

常用的目标单元

graphical.target:支持多用户,支持图像登陆和文本登陆。

multi-user.target:支持多用户,支持文本登陆

rescue.target:完成基本系统的初始化,rescue模式(救援模式)

emergency.target:系统根文件系统以只读形式挂载在/目录,emergency模式(紧急模式)

target单元相当于RHEL6中的运行级别。

即:每个target单元(运行级别),是一种模式。

在各个模式下,分别了不同的多个服务。

例如:graphical.target支持图形化界面

类比:马云这辈子,大脑开启了商业服务,下辈子投胎后,还是一样的大脑,但是大脑就可能就开启了表演服务,成为演员。

使用systemctl管理目标单元

(1)手动切换tareget目标

# systemctl  isolate  multi-user.target

马上生效

(2)获取默认target目标

# systemctl  get-default 

系统重启才生效

(3)设置默认target目标

# systemctl  set-default  multi-user.target

(4)开机时设置target目标。
仅该次有效,重启系统,然后编辑启动项,在启动命名行中指定启动目标

即: 重启系统。

按任意键中断倒计时,选择启动项,按e

在linux16开头的行的末尾,添加:systemd.unit=recure.target

按ctrl+x使用修改,并启动系统。

管理service单元

service单元,对应一个特定的服务。
一个服务,就是一个后台进程。

使用systemctl管理service单元:

(1)查询所有单元的状态

# systemctl  

(2)查询指定单元的状态

# systemctl  status  graphical.target
# systemctl  status  rsyslog.service

(3)查询所有服务单元的状态

# systemctl  --type=service

(4)查询处于失败或维护状态的所有单元

# systemctl  status  rngd.service  -l

注: -l 可以显示完整的输出。

(5)查询指定的单元当前是否处于活动状态

#  systemctl  is-active  sshd

因为sshd只有service类型的单元,没有同名的其他类型单元,可以省略 .service

(6)查询指定的单元是否开机自动启动

# systemctl  is-enabled  sshd

(7)查询已加载单元的状态

#  systemctl  list-units

列出所有已加载单元的状态。

#  systemctl  list-units  --type=service

列出所有已加载服务单元的状态。

#  systemctl  list-unit-files 

列出所有单元的启用、禁用(开机不自动启动)状态。

#  systemctl  list-unit-files  --type=service

列出所有服务单元的启用、禁用(开机不自动启动)状态。

(8)查看所有失败的服务

#  systemctl  --failed  --type=service

(9)控制服务单元

# systemctl  status  sshd.service 
# systemctl  stop   sshd.service
# systemctl  start   sshd.service
# systemctl   restart  sshd.service
# systemctl   enable  sshd.service
# systemctl   is-enabled  sshd.service
# systemctl   is-active  sshd.service

(10)重新加载服务的配置文件(不会停止和启动服务)

# systemctl  reload   sshd.service

(11)屏蔽服务

有些服务之间是有冲突的,比如iptables和firewalld,此时就需要把某个服务屏蔽。

服务屏蔽后,该服务就不会被启动!

屏蔽后,不能开机启动该服务,也不能手动启动该服务!

# systemctl   mask  iptables

取消屏蔽服务

# systemctl  unmask  iptables

(12)单元依赖

某些服务单元,需要依赖其他服务单元,才能启动。

列出指定单元所依赖的单元。

# systemctl  list-dependencies  sshd
|| 版权声明
作者:废权
链接:https://blog.yjscloud.com/archives/24
声明:如无特别声明本文即为原创文章仅代表个人观点,版权归《废权的博客》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
Linux学习笔记(七)-守护进程
systemd简介 在RHEL6中,系统的第一个进程(PID=1) 是init进程 在RHEL7中,系统的第一个进程是systemd, 是一个特殊的守护进程。 systemd比原来的init进程更强大……
<<上一篇
下一篇>>
文章目录
关闭
目 录