몇 가지 버그를 테스트하고 싶고 그러기 위해서는 PID가 99999보다 큰 상황이 필요합니다. 저는 for 루프인 bash 스크립트를 생각하고 있습니다. 어떤 아이디어가 있나요?
답변1
원하는 PID로 프로세스를 시작하려면 이와 같은 작업을 수행할 수 있습니다.
while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done
원하는 PID를 얻을 때까지 기다렸다가 echo
실제로 테스트해야 하는 내용으로 해당 명령문을 대체할 수 있습니다.
참고자료
편집하다
PID 번호가 증가하는 이유는 무엇입니까? 다른 bash 인스턴스를 계속해서 실행하기 때문입니까?
나는 당신이 말한 것이 현재 일어나고 있는 일이라고 믿습니다. 이는 아래와 같이 간단하게 테스트할 수 있습니다.
while true; do bash -c 'echo $$' ; done
우리는 PID가 계속 증가하는 것을 볼 수 있었고 맨 페이지에서 bash
다음과 같은 것을 볼 수 있었습니다.
-c string -c 옵션이 있으면 문자열에서 명령을 읽습니다. 문자열 뒤에 인수가 있으면 $0부터 시작하는 위치 매개변수에 할당됩니다.
따라서 제가 이해한 바에 따르면 echo
위 테스트의 각 명령문은 별도의 프로세스로 실행되므로 PID가 증가하는 것을 볼 수 있습니다.
답변2
당신이 하려는 것이 무엇이든 아마도 더 나은 접근 방식일 것입니다. 그러나 당신이 다음과 같이 결정했다면
while [[ 1 == 1 ]]; do sleep 10000& done
여러 개를 시작 sleeps
하지만 모두 시작하려면 시간이 걸릴 수 있습니다. 충분한 프로세스가 있으면 루프를 Ctrl-C
종료하기 위해 누르십시오 while
.