많은 프로세스를 시작하기 위해 for 루프를 만드는 방법은 무엇입니까?

많은 프로세스를 시작하기 위해 for 루프를 만드는 방법은 무엇입니까?

몇 가지 오류를 테스트하고 싶으며 이를 위해서는 99999보다 큰 PID가 필요합니다. 저는 bash 스크립트, for 루프를 생각하고 있습니다. 어떤 아이디어가 있나요?

답변1

원하는 PID로 프로세스를 시작하는 것과 비슷한 작업을 수행할 수 있습니다.

while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done

원하는 PID를 얻을 때까지 기다렸다가 echo실제로 테스트해야 하는 내용으로 명령문을 바꿀 수도 있습니다.

인용하다

살해된 후에도 동일한 PID가 사용됩니까?

편집하다

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

관련 정보