Linux systemd

2018-04-10  本文已影响0人  Coder慌

从Centos7.0以后,red hat系列的发行版都放弃了使用多年的System V开机启动服务(即init启动脚本的方法)。而使用Systemd这个启动服务管理机制。

图片.png

好处:

Unit

systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。通过观察/usr/lib/systemd/system/下文件的后缀名就可以知道该服务的unit类型。

Unit 一共分成12种。
    - Service unit:主要是系统服务,包括服务器本身所需要的本机服务以及网络服务都是!比较经常被使用到的服务大多是这种类型!所以,这也是最常见的类型了!
    - Target unit:其实是一群unit的集合,例如multi-user.target其实就是一堆服务的集合~也就是说,选择执行multi-user.target就是执行一堆其他.service或.socket之类的服务就是了!
    - Device Unit:硬件设备
    - Mount Unit:文件系统的挂载点
    - Automount Unit:自动挂载点
    - Path Unit:文件或路径
    - Scope Unit:不是由 Systemd 启动的外部进程
    - Slice Unit:进程组
    - Snapshot Unit:Systemd 快照,可以切回某个快照
    - Socket Unit:进程间通信的 socket
    - Swap Unit:swap 文件
    - Timer Unit:定时器

systemctl指令

跟以前systemV需要service/chkconfig/setup/init等指令来协助不同,systemd就是仅有systemctl这个指令来处理而已。

systemctl [command] [unit] (服务基本操作)

command主要有:
[root@VM_0_10_centos ~]# systemctl status docker.service //查看docker服务状态
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled /*开机自启动。static:这个daemon不可以自己启动(enable不可),不过可能会被其他的enabled的服务来唤醒(相依属性的服务); mask:这个daemon无论如何都无法被启动!因为已经被强制注销(非删除)。可通过systemctl unmask方式改回原本状态*/; vendor preset: disabled)
   Active: active (running) /*inactive:这个服务没有运行*/ since 二 2018-03-06 19:00:00 CST; 1 months 4 days ago
     Docs: http://docs.docker.com
 Main PID: 4652 (dockerd-current)
   Memory: 22.1M
   CGroup: /system.slice/docker.service
           ├─ 4652 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/li...
           ├─ 4656 /usr/bin/docker-containerd-current -l unix:///var/run/dock...
           ├─30036 /usr/libexec/docker/docker-proxy-current -proto tcp -host-...
           └─30040 /usr/bin/docker-containerd-shim-current 37d0c20b039d243631...

systemctl [command] [--type=TYPE] [--all] (观察系统上所有服务)

command:

list-units:依据unit列出目前有启动的unit。若加上--all才会列出没启动的。
list-unit-files:依据/usr/lib/systemd/system/内的文件,列出所有已经安装的unit。
--type=TYPE:就是之前提到的unittype,主要有service,socket,target等

上一篇下一篇

猜你喜欢

热点阅读