編集する:
play
UbuntuでSSH経由でサウンドを再生するためにSoXコマンドを使用しようとしています。マシンを起動し、マシンに物理的にアクセスし、Ubuntu GUIにログインすると、このplay
コマンドを実行してファイルを再生し、マシンからオーディオ出力を聞くことができます。これは、ローカルセッションでコマンドを実行するかSSHセッションを介して実行するかに関係なく機能します。 GUIをロックしても機能します。
ただし、再起動時にUbuntu GUIにログインする前にSSH経由で接続して実行するとplay
音は聞こえませんが、パッケージのインストールと削除、openvpnサービスの実行、scp
クライアント間のシステム、ファイルの実行など、他のすべてのコマンドは正常に機能します。また、音声出力が聞こえなくてもSSH端末にエラーは表示されません。 SoXはオーディオが再生中であることを示します。
注:SSHを介して私のサーバーへのフルルートアクセスを有効にしていません。たとえば、まだ何でもできますが、から直接何もすることはできsudo
ません。scp
/root
私の考えでは、GUIログイン前に私のオーディオサービスやモジュールがアクティブになっていないようです。これについての手がかりはありますか?
機器:MacBook Air 2017
Ubuntuデスクトップ22.04.1 LTS
答え1
だから解決策を見つけました。パルスユーザーだけがリストする「Audio」というグループがあると思います。 SSHアクセスに使用されるユーザー(ユーザー名)をオーディオグループに追加する必要があります。
- オーディオグループに追加されたユーザーを探す
$ less /etc/group | grep audio
>>> audio:x:29:pulse
- 現在のユーザーの名前をもう一度確認してみましょう。
$ who
>>> user_name pts/0 2023-01-18 08:55 (10.0.0.167
- ユーザーがこのグループに属していることを確認してください。ステップ1の出力は、Pulseが現在オーディオの唯一のユーザーに設定されていることを示しています。それでは、このグループにuser_nameを追加してみましょう。
$ sudo usermod -a -G audio user_name
- 機能していることをもう一度確認してください。
$ less /etc/group | grep audio
>>> audio:x:29:pulse,user_name
- 再起動!
$ sudo reboot
After reboot and re-login
$ play audio_file.mp3