ビデオストリーミングプロジェクトのいくつかのテストを書いています。ビデオが正しくストリーミングされていることを確認するために、ビデオクライアント(たとえばffmpeg / vlc)をデーモンとして実行する仮想マシンを設定しました。クライアントはコマンドに従ってサーバーに接続し、ビデオを表示し、ビデオをファイルに保存したいと思います。
そのためにサービスを設定しました。これは私の.serviceファイルです。
[Unit]
Description=Video client for testing
[Service]
Type=simple
WorkingDirectory=/home/user/
ExecStart=client.sh
Restart=always
[Install]
WantedBy=default.target
理想的には、これがユーザーサービスになることを願っています。残念ながら、私の仮想マシンはCentOS 7を実行しています。ユーザーサービスを実行できません。一般的なサービスとして、$ DISPLAYと$ XAUTHORITYも設定する必要がありますが、それを初期化するスクリプトが見つかりません。アーチだから私はそれらを自分で設定するのは健康ではないと思います。ログインが自動でない場合、どのように機能するのかわかりません。グラフィックウィンドウを開かずに映像だけを保存しても、スクリプト自体が動作しませんね。起動時にうまく動作します。
私は.profileでスクリプトを実行しようとしましたが、アイデアはあまり好きではありません。ぎこちないようです(またはこれが良いオプションであるかどうかはわかりません)。別のオプションは、SSHを介してスクリプトを設定することです(例:パラミコ- 追加の依存関係/スクリプトが必要です。
私はこれがあまりにも多くのハッキングになりたくないので、いくつかの提案/代替案/行動方法に本当に感謝します。
ありがとう、ジョイ。
答え1
私が推奨するパターンは、systemd
ユーザーが自動的にログインするように設定せずにデスクトップの「自動起動」機能を使用して、ログイン時に自動的にVLCを実行してコンテンツストリーミングを開始することです。
この方法は、$ DISPLAYおよび$ XAUTHORITY設定を自動的に処理します。
このモードは、ユーザーがブラウザを自動的に起動し、デバイスの起動後にフルスクリーンでURLを開こうとするRaspberry Piキオスクプロジェクトでよく使用されます。