Rpi3bだけを使ってSteamlinkをテレビに接続したいと思い、起動時に実行するようにSteamlinkを設定する方法を示すチュートリアルを見つけました(sudo nano.bash_aliases
とinsert steamlink
)。
Steamlinkを閉じたときにRaspbianを自動的に終了したい(キーボード/マウスなしで安全にプラグを抜くことができるように)。私はこの答えを見つけました:
sudo -s
someprogram && shutdown now
.bash_aliases
それでは、を編集できるという意味ですかsteamlink && shutdown now
?単純なコマンドにのみ適用されますか?
答え1
あなたが提案したように試してみる価値があります。期待どおりに機能しない場合に備えて、いくつかのヒントは次のとおりです。
.bash_aliasesの使用
通常、.bash_aliases
ファイルは自動的に実行しないでください。 「きれいな」方法はシステムデバイスを追加することですが、当面の問題に比べてこれが複雑すぎる可能性があることを知っています。
ストリームリンクを「オフ」と言いました。ストリームリンクを自動的に開始するより良い方法を提案するために、ストリームリンクとの相互作用(例えば、オフ)が正確にどのように機能するかが興味深いかもしれません。
のための&&
シェルスクリプト構文は、&&
最初のコマンドが正常に終了したときに2番目のコマンドを実行することを意味します。 Streamlinkを停止するためにCTRL-Cなどの一般的なショートカットを使用すると、実際にエラーコードで終了する可能性があります。この場合、表記が;
より良い可能性があります(閉じるのは戻りコードとは関係ありません)。
someprogram; shutdown now
アクセスを止める
考慮すべき別の注意事項があります。 UNIXシステムでは、シャットダウンは通常、システム管理者だけが実行できる操作と見なされます。最近のLinuxシステムには、ログインしている他のユーザーがいなくても、通常のユーザーとしてシャットダウンが機能できるようにするさまざまなメカニズムがあります。自動起動に追加する前に、shutdown now
コマンドが期待どおりに動作することを確認することをお勧めします。うまくいかない場合は、ユーザーがシャットダウンを実行できるようにsudoを設定する必要があります。
代替ソリューション
最後に、この質問で述べたように、実行したいプログラムの直後にシャットダウンを追加することは通常うまくいきます。アプリケーションがより複雑な場合(たとえば、他のプロセスを開始し、すべてのプロセスが終了する前に終了する場合)、プロセスの存在を監視し、存在しないときに終了をトリガーする別のスクリプトを持つことは興味深いかもしれません。