音楽を再生するヘッドレスDebianサーバーがあります。一部のスピーカーに接続されており、Bluetoothペアリングを通じて携帯電話からサーバーに音楽を再生できるように設定しておきました。
しかし、BluetoothエージェントとPulse Audioサーバーを起動するにはユーザーログインが必要であることがわかりました。私がしたことは、SSHを介してログインして実行することでしたpulseaudio -D
。bt-agent -d
これにより、私の携帯電話をサーバーとペアリングし、携帯電話で音楽を再生することができました。問題は、ユーザーが引き続きログインして実行する必要があることです。それ以外の場合は動作を停止します。
起動時にこれらの永続デーモンを自動的に起動するにはどうすればよいですか?
答え1
仮説システム次のように2つのシステムユニットを作成して有効にしてから、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