systemctl 20.04 中隐藏的单位

systemctl 20.04 中隐藏的单位

在对一些日志错误进行故障排除时,我遇到了 systemctl 和设备 tracker-miner-fs 的问题。我尝试了几种形式的命令,但无法让 systemctl 找到该设备。

systemctl status确实显示列出的服务且系统状态正在运行(没有故障单元)

systemctl status tracker-miner-fs:未找到
systemctl list-units tracker-miner-fs:未找到
systemctl list-unit-files tracker-miner-fs:未找到
systemctl list-unit-files tracker-miner-fs -all:未找到
systemctl -all:未列出
systemctl stop tracker-miner-fs:未找到
systemctl unmask tracker-miner-fs:未找到

所有形式都已尝试过,包括使用 sudo 和不使用 sudo。并不是这个特定单元造成了问题,但它确实引出了为什么?是否有一些特殊的设置可能隐藏了其他单元并导致未知错误?

有人可以解释一下这种行为吗?

答案1

跟踪器挖掘器设置为用户单元,而不是系统单元(它所做的只是索引用户主目录中的某些文件夹)。为了找到它,您需要明确指示systemd在用户单元中查找(更准确地说,您要指示systemd它应该使用哪个服务管理器)。

您可以通过包含选项重试上述所有命令--user,并且应该能够管理服务。请注意,命令sudo不需要systemctl --user

例如就我的情况来说:

注意我使用的是 Ubuntu 21.10,它附带 Tracker 3,因此服务名称不同

$ systemctl --user restart tracker-miner-fs-3.service
$ systemctl status tracker-miner-fs-3.service 
Unit tracker-miner-fs-3.service could not be found.
$ systemctl --user status tracker-miner-fs-3.service 
● tracker-miner-fs-3.service - Tracker file system data miner
     Loaded: loaded (/usr/lib/systemd/user/tracker-miner-fs-3.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-02-04 12:50:14 CET; 5min ago
   Main PID: 13141 (tracker-miner-f)
      Tasks: 6 (limit: 14089)
     Memory: 8.2M
        CPU: 183ms
     CGroup: /user.slice/user-1000.slice/[email protected]/background.slice/tracker-miner-fs-3.service
             └─13141 /usr/libexec/tracker-miner-fs-3

Feb 04 12:50:14 danny systemd[1624]: Starting Tracker file system data miner...
Feb 04 12:50:14 danny systemd[1624]: Started Tracker file system data miner.

您也可以从命令中找到这一点,systemctl status因为单位将列在user.slice而不是 下system.slice

相关内容