Systemd
為什麼我的服務以 root 身份執行
我有一台舊筆記型電腦連接到我的路由器,作為 linux 機器執行。我安裝了 qbittorrent 以作為遠端 torrent 盒執行(當然是為了下載 linux 發行版),並創建了一個新使用者“qbuser”供其執行。我創建了適當的單元文件,但是當我查看程序列表時,它以 root 身份執行。為什麼會發生這種情況?
[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'.
問題在於您單位中使用者和組名周圍的額外字元。
代替:
[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
顯示更多日誌。