저는 간단한 bash 스크립트를 작성하고 있습니다. 스크립트는 command1, command2 등과 같이 명령을 순차적으로 실행합니다. 그러나 어느 시점에서는 명령을 실행하고 싶고 해당 명령이 처리되는 동안 해당 명령을 종료하고 싶습니다. 다음 예를 통해 설명하겠습니다.
#!/bin/bash
.
.
command24
kill $(pidof command24)
command26
.
.
내 스크립트가 command24에 도달하면 완료하는 데 약 5-7분이 걸립니다. 하지만 2~3분 후에 이 명령24를 종료하고 명령 26을 계속 실행하고 싶습니다. 문제는 이 스크립트가 순차적으로 작동하면 command24가 완료될 때까지 "kill" 명령을 실행할 수 없는데, command24가 처리되는 동안 "kill" 명령을 시작하고 싶다는 것입니다. 이 시나리오를 잘 설명할 수 있었으면 좋겠습니다. 이와 관련하여 안내해 주십시오.
답변1
백그라운드에서 이 명령을 실행하고 스크립트에 몇 분 동안 절전 모드를 지시한 다음 종료하세요.
command24 &
sleep 3m
kill $(pidof command24)
command26
또는 더 안전하게 사용하려면 $!
백그라운드에서 실행된 마지막 명령의 PID를 가져옵니다.
command24 &
sleep 3m
kill $!
command26