欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

systemctl

程序员文章站 2024-02-19 20:54:58
...

systemctl是一个systemd工具,Systemd是一个系统管理守护进程、工具和库的集合
systemd作为父守护进程运行(PID = 1)
systemd与init进程的区别
它与init进程的主要差别如下。
(1)默认的 RunLevel(在/etc/inittab文件设置)现在被默认的 Target 取代,位置是/etc/systemd/system/default.target,通常符号链接到graphical.target(图形界面)或者multi-user.target(多用户命令行)。
(2)启动脚本的位置,以前是/etc/init.d目录,符号链接到不同的 RunLevel 目录 (比如/etc/rc3.d、/etc/rc5.d等),现在则存放在/lib/systemd/system和/etc/systemd/system目录。
(3)配置文件的位置,以前init进程的配置文件是/etc/inittab,各种服务的配置文件存放在/etc/sysconfig目录。现在的配置文件主要存放在/lib/systemd目录,在/etc/systemd目录里面的修改可以覆盖原始设置。


基础命令

查看systemd版本:systemd --version
查看systemd的二进制文件和库的安装位置:whereis systemd
查看\systemctl的二进制文件和库的安装位置:whereis systemctl
分析systemd启动过程: systemd-analyze
分析每个进程在引导时花费的时间:systemd-analyze blame
分析启动时的关键链: systemd-analyze critical-chain
按层次列出控制组:systemd-cgls
根据CPU,内存,输入和输出列出控制组:systemd-cgtop
列出所有运行单元:systemctl list-units
列出所有失败的单元:systemctl --failed


list-unit-files

在/usr/lib/systemd/system/目录下包含四种类型文件.mount,.service,.target,.wants
列出所有可用的单元:systemctl list-unit-files
列出所有mount:systemctl list-unit-files --type=mount
列出所有socket:systemctl list-unit-files --type=socket
列出所有service:systemctl list-unit-files --type=service


service

systemctl会根据/usr/lib/systemd/system/下的service启动相应的进程

列出所有service:systemctl list-unit-files --type=service
分析service的关键链:systemd-analyze critical-chain httpd.service
获取service的依赖项列表:systemctl list-dependencies httpd.service
service启动,重启,停止…

# systemctl start httpd.service   //启动
# systemctl restart httpd.service //重启
# systemctl stop httpd.service    //停止
# systemctl reload httpd.service  //重新加载
# systemctl status httpd.service  //状态
# systemctl enable httpd.service  //启用
# systemctl disable httpd.service //禁止
# systemctl is-enabled httpd.service //是否启用
# systemctl mask httpd.service     //屏蔽服务
# systemctl unmask httpd.service     //取消屏蔽服务
# systemctl show httpd             //检查service详细信息

获取service当前cpu份额:systemctl show -p CPUShares httpd.service
将service的cpu份额限制为2000:systemctl set-property httpd.service CPUShares=2000
注意:为服务设置CPUShare时,会创建一个名为service的目录(httpd.service.d),其中包含一个包含CPUShare Limit信息的文件90-CPUShares.conf

参考文章

  1. systemctl