Linux中的service和systemctl命令

作用: 都是用来管理Linux服务的

不同点:systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl

service的用法:

以启动Redis为例:service redis start

systemctl的用法:(本文着重讲解)

systemctl命令兼容了service;

systemctl redis start

目录

 

1. 原理

 2. 常用命令


1. 原理

systemctl命令的实质是管理和操作systemd下的Unit;

systemd的Unit目录:
Centos:/usr/lib/systemd/system
Ubuntu:/etc/systemd/system

主要包含了4种类型的文件:.service .target .wants .mount

4种类型的文件的作用:

.mount:为程序定义一个挂载点(放到哪个目录运行);

我们来具体查看一个:

.target:定义了一些基础的组件供.service文件调用;

.wants:定义了一些要执行文件的合集的目录,每次执行该合集时,目录里所有的文件都会被执行;

.service:定义了一个服务(分为三部分);

 2. 常用命令

查看版本号:

systemctl --version

管理服务(Unit):

systemctl <要执行的操作> <服务>
如:
systemctl start redis

要执行的操作主要有以下类型:

start:    立刻启动后面接的 unit。
stop:     立刻关闭后面接的 unit。
restart:  立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
reload:   不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable:   设置下次开机时,后面接的 unit 会被启动。
disable:  设置下次开机时,后面接的 unit 不会被启动。
status:   目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
is-active:目前有没有正在运行中。
is-enable:开机时有没有默认要启用这个 unit。
kill :    不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
show:     列出 unit 的配置。
mask:     注销 unit,注销后你就无法启动这个 unit 了。
unmask:   取消对 unit 的注销。

举几个例子:

查看某个服务的状态:

Loaded:    表示了从哪里启动,enable表示开机启动,disable反之;
Active:     active(running)表示已在运行,inactive(dead)反之;
Mian PID:   进程号;
Memory:     占用的内存;

查看某个服务的配置:

注销与反注销:

systemctl mask gdm.service        //注销这个服务,如果要启动的话,先要反注销
systemctl unmask gdm.service      //反注销

查看已经启动的Unit:

systemctl list-units (或者sudo systemctl)

UNIT:  项目的名称,包括各个 unit 的类别(看扩展名)。
LOAD:  开机时 unit 的配置是否被加载。
ACTIVE:目前的状态,须与后续的 SUB 搭配!就是我们用 systemctl status 观察时,active的内容。
DESCRIPTION:描述信息。
注意,systemctl 不加参数,其实等同于 systemctl list-units

查看系统上一共装了多少个Unit:

​​​​​​​systemctl list-unit-files

筛选只查看service类型的Unit:

systemctl list-units --type=service -all        type可以设置筛选条件

查看加载失败的Unit

systemctl --failed

 

 

本文参考资料:https://blog.csdn.net/skh2015java/article/details/94012643

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章