3개의 서로 다른 터미널에서 3개의 프로세스를 쉽게 시작하고 각 프로세스를 종료할 수 있습니다 Ctrl+C. 이제 3가지 프로세스를 동시에 시작하고 똑같이 쉽게 완료할 수 있는 방법이 있습니까? 아이디어:
3개의 프로세스를 시작하고 동일한 터미널에서 실행하고 Ctrl+C3개의 프로세스를 모두 종료할 수 있다면 작동할 것입니다.
두 개의 스크립트를 생성할 수 있고
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
. 또한보십시오:모든 백그라운드 작업 종료