参考文档
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
systemctl
重启
关闭
CPU停止工作
暂停系统
休眠
交互式休眠
###单用户状态
systemd-analyze
启动耗时
每个服务的启动耗时
瀑布状的启动过程流
1
| systemd-analyze critical-chain
|
显示指定服务的启动流
1
| systemd-analyze critical-chain atd.service
|
hostnamect
显示当前主机的信息
设置主机名
1
| hostnamectl set-hostname xxxx
|
localectl
查看本地化设置
设置本地化参数
1 2
| localectl set-locale LANG=en_GB.utf8 localectl set-keymap en_GB
|
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
列出当前登录用户
列出显示指定用户的信息
查询状态
列出正在运行的 Unit
列出所有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
|
查询状态
显示系统状态
显示单个 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
|
重载所有修改过的配置文件
显示某个 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 2
| journalctl -b journalctl -b -0
|
查看上一次启动的日志(需更改设置)
查看指定时间的日志
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 /usr/lib/systemd/systemd
|
查看指定进程的日志
查看某个路径的脚本的日志
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
|
以 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
|