
私は音楽用にヘッドレス Debian サーバーを持っています。このサーバーはスピーカーに接続されており、Bluetooth ペアリングを介して携帯電話からサーバーに音楽を再生できるように設定しました。
しかし、Bluetooth エージェントと pulseaudio サーバーを起動するには、ユーザーをログインさせる必要があることがわかりました。結局、ssh 経由でログインして を実行しpulseaudio -D
、 を実行しますbt-agent -d
。これにより、携帯電話をサーバーにペアリングして、携帯電話から音楽を再生できます。これの問題は、ユーザーをログインさせて実行したままにしておく必要があることです。そうしないと、動作が停止します。
起動時にこれらのデーモンを自動的に起動して永続化するにはどうすればよいでしょうか?
答え1
仮定するとシステム下記のように2つの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