GNU/Linux >> Linux の 問題 >  >> Linux

SSH経由でログインするときにリモートシステムでTmuxセッションを自動開始する

Tmux内で長時間実行されるプロセスを実行することは常に良い習慣です。 SSH経由でリモートシステムを操作する場合のセッション。これは、ネットワーク接続が突然切断されたときに、実行中のプロセスの制御を失うことを防ぐためです。何らかの理由でネットワーク接続が切断された場合に備えて、Tmuxセッション内のプロセスはリモートシステムで実行され続けるため、ネットワーク接続がオンラインに戻ったら、「tmuxattach」コマンドを使用してTmuxセッションに再接続できます。そもそもTmuxセッションを開始するのを忘れた場合はどうなりますか?どんなに注意を払っても、Tmuxセッションの開始を忘れることがあります。この問題を回避する簡単な方法は次のとおりです。 SSH経由でログを記録するときに、リモートシステムでTmuxセッションを自動開始できます。これは、ローカルシステムからSSH経由でリモートLinuxサーバーをアップグレードするときにネットワーク接続が失われた場合に特に役立ちます。次のヒントでは、ローカルまたは別のシステムからSSH経由でリモートでLinuxシステムにログインしようとすると、Tmuxセッションが自動的に開始されることに注意してください。

SSH経由でログインするときにリモートシステムでTmuxセッションを自動開始する

SSH経由で接続するときにTmuxセッションを自動開始するには、リモートシステムの〜/ .bash_profileを編集します ファイル:

$ nano ~/.bash_profile

ファイルが利用できない場合は、作成するだけです。

そして、それに次の行を追加します:

if [ -z "$TMUX" ]; then
    tmux attach -t default || tmux new -s default
fi

ファイルを保存して閉じます。ログアウトして、リモートシステムに再度ログインします。 'default'という名前の新しいTmuxセッションに移動します 。

ここで、Tmuxセッション内のプロセスを開始し、 Ctrl + bを押してプロセスをデタッチします。 続いてd 。ネットワーク接続が切断された後も、プロセスはTmuxセッション内で実行され続けます。ネットワーク接続が回復したら、リモートシステムにSSHで接続すると、ジョブがまだ実行中であることがわかります!!

次のアニメーション出力をご覧ください:

上記の出力で私が行ったことを明確にしましょう。

  1. ローカルシステムからSSH経由でリモートUbuntuサーバーに接続します。 「default」という名前の新しいTmuxセッションが自動的に開始されます。
  2. Tmuxセッション内で、CPU速度を監視するコマンド(例:watch grep \ "cpu MHz \" / proc / cpuinfo)を実行します。
  3. 次に、 Ctrl + bを押してセッションから切り離しました およびd
  4. 次に、「tmux ls」コマンドを使用してTmuxセッションを一覧表示し、SSHセッションを終了します。
  5. 最後に、SSH経由でリモートシステムに再接続し、プロセスが中断することなくTmuxセッション内で実行され続けているかどうかを確認します。

ご理解いただければ幸いです。

Tmuxセッションの自動開始を停止するには、リモートシステムの〜/ .bashrcから以前に追加した行を削除するだけです。 または〜/ .bash_profile ファイル。

この簡単なヒントは、リモートジョブの制御を失うことを回避するのに役立ちます。毎回手動でTmuxを起動する必要はありません。このガイドで説明されているように、リモートシステムにSSHで接続するたびにTmuxが自動的に起動するようにするだけです。

推奨される読み物

  • ログイン時にLinuxで画面セッションを自動開始する方法
  • レプティル–実行中のプロセスを閉じずに1つのターミナルから別のターミナルに移動します

Linux
  1. Nohupをいつ使用するのですか?

  2. Ssh – Sshアクセス試行のログ?

  3. Ctrl-c Sshセッションでの処理?

  1. リモート SSH セッションからローカル クリップボードにデータを送信する方法

  2. リモート マシンに ssh した後、scp でローカルに戻すにはどうすればよいですか?

  3. 暗号化されたホームディレクトリを持つUbuntuシステムへのauthorized_keysを使用したSSH?

  1. Ssh – Sshを使用してファイルをローカルシステムにコピーし直しますか?

  2. Ssh – Ssh経由で接続した直後にスクリプトを実行する方法は?

  3. リモート(VPN経由)のsshセッションから1を初期化すると、ssh接続が強制終了されます