동일한 터미널에서 3개의 프로세스를 시작한 다음 3개의 프로세스를 모두 쉽게 종료하려면 어떻게 해야 합니까?

동일한 터미널에서 3개의 프로세스를 시작한 다음 3개의 프로세스를 모두 쉽게 종료하려면 어떻게 해야 합니까?

3개의 서로 다른 터미널에서 3개의 프로세스를 쉽게 시작하고 각 프로세스를 종료할 수 있습니다 Ctrl+C. 이제 3가지 프로세스를 동시에 시작하고 똑같이 쉽게 완료할 수 있는 방법이 있습니까? 아이디어:

  1. 3개의 프로세스를 시작하고 동일한 터미널에서 실행하고 Ctrl+C3개의 프로세스를 모두 종료할 수 있다면 작동할 것입니다.

  2. 두 개의 스크립트를 생성할 수 있고 init.sh이로 kill.sh인해 3개의 프로세스가 시작/종료된다면 그것도 괜찮습니다.

이 두 가지 모두 쉽기 때문에 작동합니다. 백그라운드에서 프로세스를 생성하고 해당 프로세스의 pid를 찾아서 복사한 다음 다른 명령으로 종료하는 것은 쉽지 않습니다.

답변1

Bash의 작업 제어 사용:

$ sleep 10m & sleep 11m & sleep 12m &
[1] 1821
[2] 1822
[3] 1823
$ jobs
[1]   Running                 sleep 10m &
[2]-  Running                 sleep 11m &
[3]+  Running                 sleep 12m &
$ kill %1 %2 %3
$ jobs
[1]   Terminated: 15          sleep 10m
[2]-  Terminated: 15          sleep 11m
[3]+  Terminated: 15          sleep 12m

Bash에서 실행하면 command &백그라운드로 전송됩니다. 이렇게 하면 동일한 셸에서 여러 명령을 시작하고 백그라운드에서 실행할 수 있습니다. 내장 kill기능을 사용하여 이러한 백그라운드 작업을 종료할 수 있습니다. 첫 번째(가장 오래된) 활성 작업은 이고 %1, 다음 작업은 입니다 %2. 또한보십시오:모든 백그라운드 작업 종료

관련 정보