セッションでスクリプトを実行する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
後でクリーンアップされます。