Ubuntu 16.04 bash 스크립트를 클릭하여 출력 동작을 무작위로 번갈아 가며

Ubuntu 16.04 bash 스크립트를 클릭하여 출력 동작을 무작위로 번갈아 가며

pgrep에서 반환된 프로세스 ID를 직접 종료한 다음 잠금 파일을 삭제하여 모노 서비스 RecorderManager.exe 프로세스를 완전히 종료한다는 목표로 다음 클릭 Ubuntu 16.04 bash 스크립트를 작성하고 테스트했습니다.

#!/bin/bash
PID=$(exec pgrep -lx "Recorder Manage")
echo $PID
NUMBER=$(echo $PID | tr -dc '0-9')
echo $NUMBER
kill -9 $NUMBER
rm /tmp/My_Recorder.exe.lock

많은 테스트 후에 저는 이 bash 스크립트의 동작이 무작위로 번갈아 나타나는 것을 발견했습니다. 때로는 "Killed!"를 출력하고 때로는 "10931 My_Recorder.exe" 다음에 10931을 출력합니다.

이런 무작위 동작이 발생하는 이유는 무엇이며 어떻게 해결할 수 있나요?

답변1

스크립트 자체의 이름은 무엇입니까? 패턴과 일치하나요 Recorder Manage? 그렇다면 pgrep찾고 있는 프로세스 외에 스크립트 자체도 찾아야 합니다. 그러면 먼저 나열할 효과적인 문제가 될 것입니다.

kill -9또한 반드시 필요한 경우가 아니면 사용하지 마십시오. 대신 killsend 를 사용하면 자체 PID 파일을 포함하여 종료된 프로세스가 자체적으로 정리됩니다.SIGTERMSIGKILL

관련 정보