スクリプトの完了後にtmuxセッションを終了する

スクリプトの完了後にtmuxセッションを終了する

セッションでスクリプトを実行するbashために使用するスクリプトがあります。tmux次のようになります。

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'

問題はmyscript、終了後もセッションがmyjobまだ存在することです。myscript完了したら自動的に終了したいと思います。私は試した:

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'
tmux kill-session -t $session

ただし、これはmyscript完全にスキップされ、セッションを直接終了します。

ベストアンサー1

次のことができる必要があります。

tmux send-keys 'exec myscript' 'C-m'

これにより、シェルはexecスクリプトを実行します(つまり、myscriptシェルプロセスは子プロセスで起動せずに置き換えられます)。その後、そのプロセスが終了すると実行中のプロセスにtmuxなるため、tmux後でクリーンアップされます。

おすすめ記事