多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## Unit相关命令 **Systemd可以管理所有系统资源。不同的资源统称为Unit(单位),Unit一共分成12种。** ~~~ Service unit:系统服务 Target unit:多个Unit构成的一个组 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 list-units命令可以查看系统的所有Unit信息。** 列出已启动的Unit `systemctl list-units` 列出所有Unit,包括没有找到配置文件的或者启动失败的 `systemctl list-units --all` 列出所有没有启动的Unit `systemctl list-units --all --state=inactive` 列出所有启动失败的Unit `systemctl list-units --failed` 列出所有正在运行的、类型为service的Unit `systemctl list-units --type=service` **systemctl status命令用于查看系统状态和单个Unit的状态。** 显示系统状态 `systemctl status` 显示单个 Unit 的状态 `sysystemctl status httpd.service` 显示远程主机的nginx服务的状态 `systemctl -H root@192.168.2.204 status nginx.service` 除了status外,systemctl还提供了三个查询状态的简单方法,主要供脚本内部的判断语句使用。 显示某个 Unit 是否启动 `systemctl is-active application.service` 显示某个 Unit 是否启动失败 `systemctl is-failed application.service` 显示某个 Unit 服务是否开机启动 `systemctl is-enabled application.service` **systemctl常用命令** 立即启动一个服务 `systemctl start httpd.service` 立即停止一个服务 `systemctl stop httpd.service` 重启一个服务 `systemctl restart httpd.service` 杀死一个服务的所有子进程 `systemctl kill httpd.service` 重新加载一个服务的配置文件 `systemctl reload httpd.service` 重载所有修改过的配置文件 `systemctl daemon-reload` 显示某个 Unit 的所有底层参数 `systemctl show httpd.service` 显示某个 Unit 的指定属性的值 `systemctl show -p CPUShares httpd.service` 设置某个 Unit 的指定属性 `systemctl set-property httpd.service CPUShares=500` Unit的后缀名.service可以省略,例如启动ssh的命令systemctl start sshd.service可以写成systemctl start sshd。 Unit之间存在依赖关系,A依赖于B,就意味着systemd在启动A的时候,同时会去启动B。 **systemctl list-dependencies命令列出一个Unit的所有依赖。** `systemctl list-dependencies nginx.service` 上面命令的输出结果之中,有些依赖是Target类型,默认不会展开显示。如果要展开Target,就需要使用--all参数。 `systemctl list-dependencies --all nginx.service` **systemctl list-unit-files命令用于列出所有Unit的状态。** 列出所有Unit状态 `systemctl list-unit-files` 列出指定类型的Unit状态 `systemctl list-unit-files --type=service` Unit的四种状态 ~~~ enabled:开机启动 disabled:不开机启动 static:该Unit没有[Install]部分(无法执行),只能作为其他Unit的依赖 masked:该Unit被禁止开机启动 ~~~ 如果修改了某个服务的配置文件,就要重新加载配置,然后重新启动,否则修改不会生效。 ~~~ systemctl daemon-reload systemctl restart httpd.service ~~~ **系统运行模式target相关命令** 查看当前系统的所有Target `systemctl list-unit-files --type=target` 查看一个 Target 包含的所有Unit `systemctl list-dependencies multi-user.target` 查看启动时的默认Target `systemctl get-default` 设置启动时的默认Target `systemctl set-default multi-user.target` 切换Target时,默认不关闭前一个Target启动的进程,systemctl isolate命令改变这种行为,关闭前一个Target里面所有不属于后一个Target的进程 `systemctl isolate multi-user.target`