あらまし
高スペックなマシンでも実行時間が数時間かかりそうな処理をしたかったので、AWSでEC2をたてて実行することにした。
バックグラウンド処理して通知とかすれば良いのだが、手間がかかる上にもし一瞬で終わると悲しいので、通信が切れても問題ないようにtmuxを使うことにした。
tmuxは起動するが、デタッチできずハマった。
原因はBashの便利機能でした。
準備
- EC2(Amazon Linux 2)をたてる。
- tmuxをインストールする。
実行
tmuxを実行する。
$ tmux
デタッチする。
PREFFIX d
(PREFFIX
のデフォルトはctrl - t
)
結果は、、、
[exited]
セッションを確認する。
$ tmux ls
failed to connect to server
動作確認+実験
最初はTera Termが用意しているショートカットキーになっているのかと思ったが、検索しても一向にそれらしい記事は見つからない。
Tera Termが原因ではないかと思った理由は、PREFFIX d
が利くには2回押下する必要があり、入力どおりにコマンドを送れていないように見えたから。
ターミナルを複数開いて、tmuxが動作していることを確認できたがデタッチだけできないまま。
何回か実行していると、ある時Tera Termが終了することに気がついた。
原因は前述の「PREFFIX d
が利くには2回押下する」で、連打をし過ぎて、tmuxをexitしてからSSH接続もexitしてしまったから。
ctrl - d
でexitすることがわかったので、検索するとすぐに対応方法が見つかる。
対応
Bashでctrl - d
を無効化するよう。
再ログインしても効果が出るように~/.bashrc
に追記する。
IGNOREEOF=10
即時で設定反映する。
$ source ~/.bashrc
これでctrl - d
でexitしなくなるが、tmuxでexitもデタッチもできなくなる。
tmuxの設定ファイル~/.tmux.conf
を作成する。
bind-key -n C-d detach
即時で設定反映する。
$ tmux source-file ~/.tmux.conf
以上でデタッチができるようになりました。
最後に
PREFFIX d
と書きましたが、実際にはctrl - d
でデタッチできるようになっています。
現状のキーバインド一覧が確認できれば正確なことがわかるのですが、今のところ確認できていません。
Amazon Linux 2だけではないと思いますが、他のOSでは確認していません。