为什么我的服务以 root 身份运行

为什么我的服务以 root 身份运行

我有一台旧笔记本电脑连接到我的路由器,作为 Linux 盒子运行。我安装了 qbittorrent 作为远程 torrent 盒子运行(当然是为了下载 Linux 发行版),并创建了一个新用户“qbuser”来运行它。我创建了适当的单元文件,但是当我查看进程列表时,它正在以 root 身份运行。为什么会发生这种情况? top命令的结果

[Unit]
Description=qbittorrent-nox
Documentation=man:qbittorrent-nox
DefaultDependencies=yes
After=network-online.target nss-lookup.target
Before=multi-user.target

[Service]
User=[i][b]qbuser[/b][/i]
Group=[b]qb[/b]
Type=simple
ExecStart=/usr/bin/qbittorrent-nox [-options]
Nice=10
StandardError=null
StandardOutput=null
TimeoutSec=360s

[Install]
WantedBy=multi-user.target

编辑:我修复了单元文件中的语法错误,现在它完全失败了。我仔细检查了组 qb 和用户 qbuser 是否存在。这是 systemctl 状态输出:

steve@debian-server:~$ sudo systemctl status qbittorrent
● qbittorrent.service - qbittorrent-nox
   Loaded: loaded (/etc/systemd/system/qbittorrent.service; enabled; vendor preset: enabled)
   Active: failed (Result: signal) since Fri 2019-01-25 23:31:07 CST; 6min ago
     Docs: man:qbittorrent-nox
  Process: 994 ExecStart=/usr/bin/qbittorrent-nox (code=killed, signal=ABRT)
 Main PID: 994 (code=killed, signal=ABRT)

Jan 25 23:31:07 debian-server systemd[1]: Started qbittorrent-nox.
Jan 25 23:31:07 debian-server systemd[1]: qbittorrent.service: Main process exited, code=killed, status=6/ABRT
Jan 25 23:31:07 debian-server systemd[1]: qbittorrent.service: Unit entered failed state.
Jan 25 23:31:07 debian-server systemd[1]: qbittorrent.service: Failed with result 'signal'.

答案1

问题在于您单位中用户和组名称周围的额外字符。

代替:

[Service]
User=[i][b]qbuser[/b][/i]
Group=[b]qb[/b]

你应该使用:

[Service]
User=qbuser
Group=qb

(假设组qb存在。)

另外[-options],您可能应该将其替换为您自己的选项(并删除方括号。)

如果用户不存在,systemd 将记录警告并继续以 root 身份运行服务。

您可以使用命令查看带有警告的日志systemctl status qbittorrent-nox,或journalctl -u qbittorrent-nox -e显示更多日志。

相关内容