数日前、Tmuxセッションを自動開始する方法を見てきました ローカルまたはSSH経由でリモートでLinuxシステムにログインするときはいつでも。今日は、画面を自動起動する方法を見ていきます。 ログイン時のLinuxでのセッション。画面セッションの自動開始は、SSH経由で長時間実行されるプロセスを実行するときに非常に役立ちます。何らかの理由でネットワーク接続が失われた場合、プロセスはリモートシステムのScreenセッション内で実行され続け、ネットワークがオンラインに戻ったときにプロセスに再接続できます。
ログイン時にLinuxで画面セッションを自動開始
LinuxでScreenセッションを自動開始するには、Linuxシステムの〜/ .bash_profileを編集します または〜/ .bashrc ファイル:
$ nano ~/.bash_profile
上記のファイルが利用できない場合は、作成してください。
そして、それに次の行を追加します:
if [[ -z "$STY" ]]; then screen -xRR default fi
ここでは、 -xを使用しました 切り離されていない画面セッションにアタッチするフラグ。そして-RR flagは、検出した最も若い(作成時間の観点から)切り離された画面セッションを再開しようとします。
注: Zshシェルを使用する場合は、上記の行を〜/ .zshrcに追加します。 ファイル。
ファイルを保存して閉じます。ログアウトして、システムに再度ログインします。 「デフォルト」という名前の新しいスクリーンセッションが表示されます 。
次に、Screenセッション内のプロセスを開始し、 Ctrl + aを押してプロセスを切り離します。 続いてd 。ネットワーク接続が切断された場合でも、プロセスはScreenセッション内で実行され続けます。ネットワーク接続が回復したら、リモートシステムにSSHで接続すると、ジョブがまだ実行中であることがわかります!!
次のアニメーションデモをご覧ください:
上記の出力で私が行ったことを明確にしましょう。
- ローカルシステムからSSH経由でリモートUbuntuサーバーに接続します。 「デフォルト」という名前の新しい画面セッションが自動的に開始されます。
- Screenセッション内で、CPU速度を監視するコマンド(例:watch grep \ "cpu MHz \" / proc / cpuinfo)を実行します。
- 次に、 Ctrl + aを押してセッションから切り離しました およびd 。
- 次に、「screen -ls」コマンドを使用して画面セッションを一覧表示し、SSHセッションを終了します。
- 最後に、SSH経由でリモートシステムに再接続し、プロセスが中断することなくScreenセッション内で実行され続けるかどうかを確認します。
ご理解いただければ幸いです。
Screenセッションの自動開始を停止するには、リモートシステムの〜/ .bashrcから以前に追加した行を削除するだけです。 または〜/ .bash_profile ファイル。