BlueXIII's Blog

热爱技术,持续学习

0%

systemd学习笔记

参考文档

http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

systemctl

重启

1
systemctl reboot

关闭

1
systemctl poweroff

CPU停止工作

1
systemctl halt

暂停系统

1
systemctl suspend

休眠

1
systemctl hibernate

交互式休眠

1
systemctl hybrid-sleep

###单用户状态

1
systemctl rescue

systemd-analyze

启动耗时

1
systemd-analyze                                                                                       

每个服务的启动耗时

1
systemd-analyze blame

瀑布状的启动过程流

1
systemd-analyze critical-chain

显示指定服务的启动流

1
systemd-analyze critical-chain atd.service

hostnamect

显示当前主机的信息

1
hostnamectl

设置主机名

1
hostnamectl set-hostname xxxx

localectl

查看本地化设置

1
localectl

设置本地化参数

1
2
localectl set-locale LANG=en_GB.utf8
localectl set-keymap en_GB

timedatectl

查看当前时区设置

1
timedatectl

显示所有可用的时区

1
timedatectl list-timezones                                                                                   

设置当前时区

1
2
3
timedatectl set-timezone America/New_York
timedatectl set-time 2018-10-25
timedatectl set-time 11:32:00

loginctl

列出当前session

1
loginctl list-sessions

列出当前登录用户

1
loginctl list-users

列出显示指定用户的信息

1
loginctl show-user root

查询状态

列出正在运行的 Unit

1
systemctl list-units

列出所有Unit,包括没有找到配置文件的或者启动失败的

1
systemctl list-units --all

列出所有没有运行的 Unit

1
systemctl list-units --all --state=inactive

列出所有加载失败的 Unit

1
systemctl list-units --failed

列出所有正在运行的、类型为 service 的 Unit

1
systemctl list-units --type=service

查询状态

显示系统状态

1
systemctl status

显示单个 Unit 的状态

1
systemctl status bluetooth.service

显示远程主机的某个 Unit 的状态

1
systemctl -H root@rhel7.example.com status httpd.service

显示某个 Unit 是否正在运行

1
systemctl is-active application.service

显示某个 Unit 是否处于启动失败状态

1
systemctl is-failed application.service

显示某个 Unit 服务是否建立了启动链接

1
systemctl is-enabled application.service

服务管理

立即启动一个服务

1
systemctl start apache.service

立即停止一个服务

1
systemctl stop apache.service

重启一个服务

1
systemctl restart apache.service

杀死一个服务的所有子进程

1
systemctl kill apache.service

重新加载一个服务的配置文件

1
systemctl reload apache.service

重载所有修改过的配置文件

1
systemctl daemon-reload

显示某个 Unit 的所有底层参数

1
systemctl show httpd.service

显示某个 Unit 的指定属性的值

1
systemctl show -p CPUShares httpd.service

设置某个 Unit 的指定属性

1
systemctl set-property httpd.service CPUShares=500

列出一个 Unit 的所有依赖

1
systemctl list-dependencies --all nginx.service

配置文件的状态

列出所有配置文件

1
systemctl list-unit-files

列出指定类型的配置文件

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

查看配置文件

1
systemctl cat atd.service

日志管理

查看所有日志(默认情况下 ,只保存本次启动的日志)

1
journalctl

查看内核日志(不显示应用日志)

1
journalctl -k

查看系统本次启动的日志

1
2
journalctl -b
journalctl -b -0

查看上一次启动的日志(需更改设置)

1
$ sudo journalctl -b -1

查看指定时间的日志

1
2
3
4
5
journalctl --since="2012-10-30 18:17:16"
journalctl --since "20 min ago"
journalctl --since yesterday
journalctl --since "2015-01-10" --until "2015-01-11 03:00"
journalctl --since 09:00 --until "1 hour ago"

显示尾部的最新10行日志

1
journalctl -n

显示尾部指定行数的日志

1
journalctl -n 20

实时滚动显示最新日志

1
journalctl -f

查看指定服务的日志

1
journalctl /usr/lib/systemd/systemd

查看指定进程的日志

1
journalctl _PID=1

查看某个路径的脚本的日志

1
journalctl /usr/bin/bash

查看指定用户的日志

1
journalctl _UID=33 --since today

查看某个 Unit 的日志

1
2
journalctl -u nginx.service
journalctl -u nginx.service --since today

实时滚动显示某个 Unit 的最新日志

1
journalctl -u nginx.service -f

合并显示多个 Unit 的日志

1
journalctl -u nginx.service -u php-fpm.service --since today

查看指定优先级(及其以上级别)的日志,共有8级

1
2
0: emerg 1: alert 2: crit 3: err 4: warning 5: notice 6: info 7: debug
journalctl -p err -b

日志默认分页输出,–no-pager 改为正常的标准输出

1
journalctl --no-pager

以 JSON 格式(单行)输出

1
journalctl -b -u nginx.service -o json

以 JSON 格式(多行)输出,可读性更好

1
journalctl -b -u nginx.service -o json-pretty

显示日志占据的硬盘空间

1
$ sudo journalctl --disk-usage

指定日志文件占据的最大空间

1
$ sudo journalctl --vacuum-size=1G

指定日志文件保存多久

1
$ sudo journalctl --vacuum-time=1years