在对一些日志错误进行故障排除时,我遇到了 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
。