2012-06-25 2 views

답변

1

실행중인 시스템에 따라 다릅니다. strace이있는 경우 모든 fork 시스템 호출을 추적 할 수 있습니다. 문제는 somesystems가 , 일부 vfork 및 일부 clone을 사용하지만 실험을해야합니다. 리눅스에서 :

strace -c -f -evfork ./t.sh 

당신에게 요약을 제공해야합니다. -c은 카운트를, -f은 "따르는"자식 프로세스를 의미하고 -evfork은 커널 호출을 vfork 추적하는 것을 의미합니다. 출력이 stderr로 이동하지만 -o 옵션을 사용하여 파일로 리디렉션 할 수 있습니다 (여기에 명명 된 파이프를 지정하면 수행 할 수있는 몇 가지 트릭이 있습니다).

당신이 시도 할 수
0


./t.sh;ps -aux | grep -E "t.sh" -E 경기이 필요하고 다른 아무것도, 정말 내가 확신 할 수 없어 지금은 리눅스에없는 아니지만, 해당 옵션

+0

'-E' 옵션'에 : 대신 GREP 당신이처럼 t.sh 스크립트에 의해 양산 프로세스의 목록을 볼 수 pstree를 사용하여 더 나을 것 기본 정규 표현식보다 'grep -E'는'egrep'과 동등합니다 (리눅스에서도 똑같습니다). – cdarke

1

함께 할 수있는 뭔가가있어 정확히 당신의 실수는 세미콜론입니다. grep을 실행하기 전에 쉘이 t.sh가 끝날 때까지 기다려야한다고 알려줍니다. 대신 배경에서 t.sh를 실행하도록 셸에 알리기 위해 앰퍼샌드를 사용하십시오. 오히려, grep` 수단이 확장 된 정규 표현식을 사용

$ ./t.sh & pstree $(pgrep t.sh) 
관련 문제