接続せずに特定のtmuxセッション/ウィンドウに入力またはコマンドを送信するために使用できるコマンドはありますか?
無人接続のためのものです。
tmuxセッションで実行されるコンソールアプリケーションがあります。デプロイ(capistranoを使用)が完了したら、再起動したいと思います。
可能ですか?
基本的に送信したい内容は次のとおりです。
exit
cd ..
cd app
rails console
答え1
この問題はServerFaultの解決策です。
send-keys
マニュアルページに記載されているコマンドを使用してください。
send-keys
以下は、このコマンドの使用を示す「Hello World」の例です。
ステップ1。別々のセッションを作成します。
user@host:~$ tmux new -d -s mySession
ステップ2:別々のセッションでコマンドを実行します。
user@host:$ tmux send-keys -t mySession.0 "echo 'Hello World'" ENTER
ステップ3:セッションに接続する:
user@host:$ tmux a -t mySession
Tmuxターミナルウィンドウに次のテキストが表示されます。
user@host:$ echo 'Hello World'
Hello World
user@host:$
これはecho
、tmuxセッション内でコマンドが正常に送信され実行されたことを示します。
この手法をコマンドに適用すると、次のようになります。
user@host:~$ tmux send-keys -t mySession.0 exit ENTER
user@host:~$ tmux send-keys -t mySession.0 "cd .." ENTER
user@host:~$ tmux send-keys -t mySession.0 "cd app" ENTER
user@host:~$ tmux send-keys -t mySession.0 "rails console" ENTER