为什么 systemd 决定启动 adb

为什么 systemd 决定启动 adb

我有一个 Ubuntu 20.04.1 LTS 系统。

该系统从未通过 USB 连接过 Android 设备。

但令我惊讶的是,我发现亚行在跑:

# ps -efa | grep adb
bram       72062    1421  0 Oct29 ?        00:04:07 adb -L tcp:5037 fork-server server --reply-fd 7

PPID 是systemd过程。

现在...为什么 systemd 决定为 adb 启动服务器?我从来没有要求这样做?

(感谢动力顶,顺便说一句,突出显示 adb,它显示为能源浪费,以进行启动!)

Ubunutu LTS 是否默认启用 adb 作为服务器?我觉得难以置信?为什么?万一用户有 Android 手机呢?

如何禁止 adb 自动启动?

更新:

$ systemctl status adb.service
Unit adb.service could not be found.

重启后,adb 进程没有恢复。

进一步检查发现 adb 是由 systemd 代表渲染文档并且 renderdoc 在退出后保持其运行。

答案1

事实证明,adb 虽然是由 systemd 启动的,但它是由来自渲染文档工具。

我的用户的 bin 目录中有一个旧的 adb 副本,它被 renderdoc 拾取了。

退出 renderdoc 后,adb 服务器仍处于运行状态。

因此 adb 不是在启动时启动的,而是在 renderdoc 请求时启动的。这是因为该工具可以捕获本地 GPU 流以及来自 Android 设备的远程 GPU 流。

答案2

哇,这太大胆了。我检查了我的 Ubuntu 20.04,没有运行这样的服务。我唯一做的事情就是删除“snap”,但我无法想象这会对服务负责。

但您可以停止该服务。首先尝试查找正在运行的服务:

systemctl --type=service

如果您找到了该服务(例如 adb.service),则在终端中执行:

sudo systemctl stop adb.service//这将立即停止服务

sudo systemctl disable adb.service//将永远禁用它

(服务名称可能是另一个。“adb”只是一个例子)

如果您不确定该服务,只需编辑您的问题并粘贴第一个命令的内容...

相关内容