
我有一個用於播放音樂的無頭 Debian 伺服器。它已連接到一些揚聲器,我已經對其進行了設置,以便我可以透過藍牙配對從手機向伺服器播放音樂。
但是,我發現我需要用戶登入才能啟動藍牙代理和pulseaudio伺服器。我最終要做的是透過 ssh 登入並運行pulseaudio -D
,然後bt-agent -d
.這允許我將手機與伺服器配對並從手機播放音樂。問題是我必須保持用戶登入並運行,否則它將停止工作。
如何在啟動時自動啟動這些持續存在的守護進程?
答案1
假設系統您可以建立如下所示的兩個 systemd 單元,啟用它們systemctl --user enable bt-agent-d.service; systemctl --user enable pulseaudio-d.service
並最終啟用揮之不去為了在引導時啟動它們,並且在使用者使用 登出時不停止它們loginctl enable-linger username
。
PS 最後一個指令中的「使用者名稱」是一個佔位符實際的使用者名稱和最後一個命令需要 root 權限才能成功。
~/.config/systemd/user/bt-agent-d.service
:
[Unit]
Description=Bt-agent-d service
[Service]
ExecStart=/bin/bt-agent -d
[Install]
WantedBy=default.target
~/.config/systemd/user/pulseaudio-d.service
:
[Unit]
Description=Pulseaudio-d service
[Service]
ExecStart=/bin/pulseaudio -D
[Install]
WantedBy=default.target