bash : Tmux에서 블로킹 스크립트 실행


0

bash 파일에서 2 개의 다른 TMUX 창에서 2 개의 스크립트를 실행하려고했습니다. 문제는 그것들이 모두 차단되고 있기 때문에 한 창에서 프로세스를 실행하면 다른 창으로 이동하여 다른 작업을 실행할 수 없습니다.

이 문제를 어떻게 극복 할 수 있습니까?

코드 샘플을 게시하겠습니다.

#! /bin/bash
tmux split-window -v
tmux select-pane -t 0
./blocking_script_1
tmux select-pane -t 1 #doesnt happen
./blocking-script_2  #doesnt happen

감사

리암


일단 시작한 스크립트와 상호 작용해야합니까? 즉, 당신은 그들과 배경을 시작할 수 &있습니까?
Paul

@ 폴 네 그래.
Liam FA

답변:


0

이것은 당신이 원하는 것을해야합니다.

#!/bin/bash
tmux split-window -v
tmux send-keys -t 0 ./blocking_script_1 C-m
./blocking-script_2

창을 전환 한 다음 blocking_script_1을 실행하는 대신, 실행하는 데 필요한 키 입력을 전송 한 다음 캐리지 리턴 (Ctrl-M. aka Enter또는 C-m)이 전송됩니다. 그런 다음 현재 창에서 blocking_script_2를 실행합니다 (변경되지 않았지만 여전히 창 -t1).

blocking_script_1에 인수를 제공해야하는 경우 전체 명령과 모든 인수를 큰 따옴표로 묶거나 \공백을 이스케이프 처리하는 데 사용하십시오. 예 :

tmux send-keys -t 0 "./blocking_script_1 arg1 arg2 arg3..." C-m

또는

tmux send-keys -t 0 ./blocking_script_1\ arg1\ arg2\ arg3... C-m
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.