Systemd 使用教程(四):其他 systemctl 命令的使用介绍

Systemd中其他systemctl命令使用介绍

本教程将由浅入深的介绍 linux 中 Systemd 的知识和相关使用(同时也方便自己后续查阅)

四、其他 systemctl 命令的使用介绍

4.1 列表和筛选:list-unitslist-unit-files

  • list-units:用于查看当前系统中正在运行或者已经加载到内存中的单元(Unit)的状态信息。这里的单元是指那些已经被 systemd 激活、正在运行、已停止或者处于其他状态的服务、挂载点、定时器等。
  • list-unit-files:查看系统中所有可用的单元文件的信息,这些单元文件存放在系统的特定目录(如 /etc/systemd/system、/lib/systemd/system 等)中,不管这些单元文件对应的单元是否正在运行。

他们的相同点是,都可以通过相同的语法进行筛选,常见的筛选项如下

  • --type=:用于按照单元(Unit)类型进行筛选,例如 service、target 等(可以读一读之前对于 Unit 的介绍)
  • --state=:按照状态进行筛选,一般 list-units 按照是否运行/激活筛选(active),而 list-unit-files 则按照是否开机启动筛选(enabled)
  • --all:显示所有单元或单元文件,包括那些隐藏的或者状态为 dead 的单元
  • 通配符筛选:可以使用通配符来筛选单元或单元文件的名称。例如筛选出所有以 httpd 开头的单元或单元文件:systemctl list-units httpd*

4.2 防止意外激活:mask 机制介绍

当一个服务被 mask 之后,这个服务将服务被激活(启动)。

这在防止不想被启动的服务被错误启动时很有用。

systemctl mask <service-name>
systemctl unmask <service-name>

4.3 查看依赖关系:list-dependencies

如果你想查看一个服务需要依赖哪些其他服务,可以使用 list-dependencies 命令

systemctl list-dependencies <service-name>
# 还可以查看哪些服务依赖 service-name
systemctl list-dependencies --reverse <service-name>

例如
在这里插入图片描述

4.4 查看和修改配置文件:systemctl catsystemctl edit

# 查看 service-name 的配置文件内容
systemctl cat <service-name>
# 以覆盖的形式编辑 service-name 的配置文件
systemctl edit --full <service-name>
# 以备份的形式编辑 service-name 的配置文件
systemctl edit <service-name>

(小提示:可以使用 export EDITOR=vim 来修改 linux 的默认编辑器)

例如
在这里插入图片描述

### Systemd 命令入门教程 #### 了解 Systemd 的基本概念 Systemd 是一组用于管理系统和服务的工具集,取代了传统的 init 系统。名称中的 `d` 表示守护进程 (daemon),意味着该程序旨在持续运行并监控系统状态[^2]。 #### 查看版本信息 可以通过执行以下命令来查看当前安装的 systemd 版本: ```bash $ systemctl --version ``` 此命令会显示 systemd 及其依赖库的具体版本号。 #### 控制单元(Unit) systemctl 工具用来控制 systemd 单元(unit)。这些单元代表操作系统上的不同组件或资源,如服务(service)、套接字(socket) 和挂载点(mount point)[^1]。 ##### 启动和停止服务 要启动某个特定的服务,可使用如下命令: ```bash sudo systemctl start <service_name>.service ``` 同样地,如果想要停止正在运行的服务,则应输入: ```bash sudo systemctl stop <service_name>.service ``` 请注意替换 `<service_name>` 为实际的服务名。 #### 设置开机自启项 为了让某项服务随计算机一起自动加载,需启用它作为目标(target)的一部分: ```bash sudo systemctl enable <service_name>.service ``` 相反操作则是禁用一项已有的自启动项目: ```bash sudo systemctl disable <service_name>.service ``` 上述指令均会影响 `/etc/systemd/system/` 下的相关配置文件[^4]。 #### 查询服务状态 为了获取有关指定服务的状态详情,可以运用下面这条语句: ```bash systemctl status <service_name>.service ``` 这不仅能够告知服务是否处于活动(active)之中,还会提供最近的日志条目以及其他有用的信息。 #### 切换运行级别(Runlevel) 不同于旧版基于 runlevels 的初始化方案,systemd 引入了 targets 来定义系统的预期工作模式。例如切换至多用户环境下的文本终端界面,应该这样做: ```bash sudo systemctl isolate multi-user.target ``` 对于进入带有图形化登录屏幕的目标而言,相应的命令是这样的: ```bash sudo systemctl isolate graphical.target ``` 值得注意的是,默认情况下大多数现代发行版都将指向其中之一作为初始启动时的选择。 #### 自定义配置 当需要调整现有设定或是创建全新的 unit 文件时,应当编辑位于 `/lib/systemd/system/` 或者 `/etc/systemd/system/` 中对应的 .service 文件。后者优先级更高,并允许局部重写全局默认值。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郎碎碎念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值