我有一个用于播放音乐的无头 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