Bash에서 동시에 실행되는 두 명령을 종료합니다.

Bash에서 동시에 실행되는 두 명령을 종료합니다.

bash 스크립트(그 중 하나는 다른 bash 스크립트)에서 두 명령을 동시에 실행하고 싶은데 Ctrl+C를 누르면 두 명령을 모두 중지해야 합니다. 내 bash 스크립트는 이제 다음과 같습니다.

#!/bin/bash

./command1 &

exec "/path/to/bash2" 

Bash2에서:

#!/bin/bash

[..]
python run.py

이 두 명령을 종료하려면 트랩을 추가해야 합니까? 그렇다면 bash에 다음을 추가해도 도움이 되지 않습니다.

trap killgroup SIGINT

killgroup(){
  echo killing...
  kill 0
}

답변1

kill올바른 PID를 사용하고 있는지 확인하려면 다음을 시도해 보십시오 .

./command1 &
childpid=$!
trap "kill -TERM ${childpid}" EXIT

답변2

GNU Parallel은 ctrl-c를 존중합니다. 따라서 다음을 실행할 수 있습니다.

parallel ::: ./command1 /path/to/bash2

관련 정보