무한 루프로 작업을 종료하는 방법

무한 루프로 작업을 종료하는 방법

df.sh라는 쉘 스크립트를 만들었습니다.

#!/bin/sh
while true ; do 
df -hT
sleep 30
done &

그런 다음 실행합니다 ./df.sh(실행 권한을 부여합니다).

실행 후 루프를 종료하고 싶지만 종료할 수 없습니다.

답변1

사용

$ pkill -f df.sh

sleep 30그러면 스크립트에 종료 신호가 전송되고, 현재 호출이 완료되자마자 스크립트가 종료됩니다.

또는 ps스크립트의 프로세스 ID를 찾아 종료 신호를 보내는 데 사용합니다.

$ ps

$ kill pid

( pid나열된 스크립트의 정수 프로세스 ID는 어디에 있습니까 ps?)

답변2

첫째, 이것이 취약점 스크립트인 경우 &끝이 아닌 스크립트를 호출할 때 사용하는 것이 좋습니다 while.

./df.sh &

kill종료 신호 보내기를 사용하는 것이 좋습니다. 또는 프로세스를 사용하거나 가져온 후에 kill -9프로세스가 pid응답하지 않으면 사용할 수 있는 종료 신호를 보냅니다.psgreppgreppkill하지만df.sh, 조심하세요. 여러 번 실행하면 모든 프로세스가 호출되고, pkill -f함께 사용 하면 df.sh패턴과 일치하는 모든 프로세스가 종료됩니다.

관련 정보