tmytのらくがき

個人の日記レベルです

Bash on Windowsのtmuxセッションが終了して悲しくならないために

Bash on Windowsって、bash.exeがホストしてるLinuxサブシステムで動いてます。複数のbash.exeを起動してもそこはなんかいい感じになっていて*1プロセスごとにインスタンスを作ってLinuxサブシステム用のプロセスをそのインスタンスの中で起動するという動きだそうです。

で、bash.exeが終了した時点でセッションへの参照がデクリメントされて、最終的にセッションへの参照が0個になった時点でLinuxサブシステムが終了したみたいな動きになります。困ったものです。

通常困らないのですが、tmux起動してその中で作業やっていて、ウィンドウ閉じちゃったりするとLinuxサブシステムごと終了してtmuxインスタンスはなかったことに。結果悲しみに包まれるということが起こりえます。

そこで先行研究もせずに、COMパワーを駆使してLinuxサブシステムのインスタンスを作るだけ作ってほったらかし。あとはタスクトレイに常駐する。というツールをこしらえておきました。

github.com

Bash on Windowsでウィンドウ閉じるとtmux終了して悲しみに包まれる人たち向けです。

*1:システムのデフォルトのセッションを使ってる