たとえば、 here のように、systemdの一部であるlogindは、一部のデバイスにユーザーセッションのアクセス許可を設定できます。 ビデオもあります この種の動作が実際にどのように機能するかを示しています。簡単に言うと、開始して、たとえばamarokで曲を再生すると、ログインプロンプトしかない別のユーザーまたはTTYに切り替えるまで、サウンドが聞こえます。これは、アクティブなセッションが非アクティブになったためです。
特定のグループ(この場合は「オーディオ」)にユーザーを追加するだけで問題が解決することはわかっていますが、別の解決策があるかどうか疑問に思っています。私が本当に望んでいるのは、すべてのユーザーがセッションをロックしている場合でも、サウンドカードを常に使用できるように、プロセスにいくつかのアクセス許可を設定することです。
それは可能ですか?私はよく音楽を聴いていて、ほとんどの時間モニターをオンにする必要がないので、画面をロックするだけです。しかし、画面をロックすると、アクティブなセッションが非アクティブになり、amarokの再生が停止します。はい、画面をオフにするだけでなく、ロックする必要があります。
編集:
どのディストリビューションを使用しているのかは重要ではないと思います。systemdが搭載されている場合、まったく同じ問題になるからです。とにかく、私はdebian sidを使用していますが、systemd、udev(およびいくつかの依存関係)のようないくつかのパッケージは実験的なブランチからのものであり、現在は219-9バージョンです。
Pulseaudioは、~/.config/autostart/
の下にあるxdgautostartを介して開始されます。 pulseaudio.desktop
というファイルがあり、そのファイルでデフォルトのexec
行を次の行に変更しました。
Exec=/usr/bin/sg audio -c "pulseaudio -D"
システムにログインすると、pulseaudioプロセスは次のようになります。
$ ps -eo user,group,args | grep Pulse
morfik audio pulseaudio -D
morfik audio /usr/lib/pulseaudio/Pulse/gconf-helper
そして今、私はいつも音楽を聴くことができます。これが私が探していた解決策だと思います。
使用しているLinuxのバージョン/フレーバーはわかりませんが、サウンドデバイスのACLは、udevルールを介してConsoleKitによって制御されているようです。私のDebianホストでは、/ lib/udev/rules.d /70-udev-acl.rulesに次のようなものがあります。
# sound devices
SUBSYSTEM=="sound", TAG+="udev-acl"
これをタグ付け解除して遊ぶので、consolekitはサウンドデバイスをデータベースに追加せず、サウンドデバイスのACLを管理しません
Linuxデスクトップのオーディオについてはほとんど知らないと言わせてください。これが役に立たない場合は、MeaCulpa。
オーディオデバイスのグループ権限を設定します。
chgrp audio <dev-path>
chmod g+rw <dev-path>
amarokが実行されているグループに。systemdを使用して、amarokをそのグループで実行するように強制します。最初にamarok systemdファイルを/ etc/systemd/user /にコピーして変更します。
[Service]
Group=audio
(これは変更であり、ファイル全体ではありません)。
しかし、今日のLinuxオーディオシステムである複数のレイヤーにより、より「洗練された」答えがあるかもしれません。
Vncフレームバッファでプレーヤーを実行するのはどうですか?ミント17では...
# apt search vfb
p xvfb - Virtual Framebuffer 'fake' X server
p xvfb:i386 - Virtual Framebuffer 'fake' X server
https://en.wikipedia.org/wiki/Xvfb で説明されているように、VNCを使用してデスクトップを表示します。