web-dev-qa-db-ja.com

すべてシェルスクリプト内で、新しいtmuxセッションを開始してデタッチします

新しいtmuxセッションを作成し、コマンド「vagrantup」を実行しようとしています。 「Vagrantup」には3時間以上かかるので、セッションを切り離して、後で戻って同じセッションに接続してそのコマンドのステータスを確認できるようにします。

StackOverflow post で指定された答えに従って同じことを達成しました。

エラーが発生しますno session found。これが私のコードです:

    $cat tmux_sh.sh
    #!/bin/bash
    echo "step 1"
    tmux new-session -d -s rtb123 'vagrant up'
    echo "step 2"
    tmux detach -s rtb123

    $./tmux_sh.sh
    step 1
    step 2
    session not found: rtb123
9
Swarup Donepudi

シェルを起動し、それにvagrantを送信して、エラーを確認できるようにします。

tmux new-session -d -s rbt123
tmux send-keys 'vagrant up' C-m
tmux detach -s rtb123

C-mはヒットリターンを意味します。

10
mlv

セッションの作成時に-dスイッチを使用しています。これは、セッションがデタッチを開始することを意味するため、detachコマンドを使用する必要はありません。また、デタッチしようとしたときにセッションが実行されていない場合は、セッションが存在しなくなったことを意味するため、コマンドが終了した可能性があります。

9
petersohn