首页 / Linux 命令行入门教程 / 73. systemd 与单元(unit/target)

Linux 命令行入门教程

73. systemd 与单元(unit/target)

本教程共 90 篇 · 第 73 篇

73. systemd 与单元(unit/target)

如 §72 所述,systemd 是今天的 init 系统,PID 1。它不光管开机,还管着系统运行时的所有服务。

systemd 把所有要管的东西都叫”单元”(unit)。常见几类:

  • .service 服务,比如 ssh.service、网页服务器。
  • .socket 套接字,按需唤醒服务。
  • .mount 挂载点,对应一次挂载动作。
  • .timer 定时器,相当于 systemd 自己的 cron。
  • .target 目标,把一组单元打包成一种”系统状态”。

target 取代了老式的运行级别(runlevel)。记住三个就够用:

  • multi-user.target:纯命令行的多用户状态,不进图形界面。
  • graphical.target:带图形桌面的完整状态,桌面机默认。
  • rescue.target:单用户救援模式,系统坏了进去修。

看当前在哪个 target:

systemctl get-default

想切到命令行模式(重启后保持),设默认 target:

sudo systemctl set-default multi-user.target
Tip

单元文件都放在 /lib/systemd/system//etc/systemd/system/。要加自定义服务,就往后者里放一个 .service 文件。

小结:systemd 把服务、挂载、定时都叫 unit;target 是”系统状态包”,graphical 图形、multi-user 命令行。