私は Linux プログラム「screen」の大ファンです。このプログラムを使用すると、SSH セッション内で画面を起動でき、切断後も画面が維持されます。スクリーンに関する詳細はこちら
スクリーン セッション内で別のプログラム (または .sh スクリプト) を自動的に起動するコマンド ラインからスクリーン セッションを開始する方法はありますか?
これをラズベリーパイのブート シーケンスに追加して、パイが再起動された場合でも、何らかのソフトウェアを自動的に実行する画面が常に表示され、いつでもパイに SSH 接続してそのソフトウェアの出力を確認できるようにしたいと思います。
私は見てきましたこの解決策しかし、これは部分的にしか役に立ちません。画面は次のように始まります
screen -t "df" watch -n 10 df
「df」コマンドを正常に開始します。
ただし、プログラムの実行が終了すると、画面は閉じて消えます。
最初に開始したプログラムが終了しても、画面が表示された状態を維持したいです。
答え1
コマンドを次のように変更します。
screen -t "df" bash -c 'watch -n 10 df; exec bash'
bash -c
: 使用バッシュ -c複数のコマンドを実行します。
exec bash
: 後dfコマンドが終了すると、外部から終了されるまで終了しないシェル (bash) が起動します。
答え2
これを実行するには、コマンドが完了した後も実行を継続するシェルでコマンドを実行します。
例えば、実行されたスクリプトが終了したときに GNU screen がセッションを終了しないようにする受け入れられた答えは
exec bash
コマンドの後に、コマンドが完了したときにシェルを起動します。