bash 스크립트에서 포어 그라운드에서 프로세스를 시작한 다음 해당 프로세스의 하위로 시작한 모든 프로세스 이름과 PID 목록을 인쇄하려고합니다.Bash : 명령의 모든 하위 프로세스의 PID
#!/bin/bash
C.sh
C.sh를 : : 예를 들어, 나는 다음과 같은 스크립트가 있다고 가정하지만, 나는 단지 첫 번째 수정할 수 있습니다
A.sh :
#!/bin/bash
B.sh
B.sh을
을#!/bin/bash
echo "Running C.sh"
B.sh, C.sh 또는 echo 명령을 수정하지 않고 백그라운드에서 하위 프로세스를 시작하지 않고,
B.sh 1208
C.sh 1210
echo 1211
는 포크에게 자식 프로세스가 A.sh의 전경에서 실행하는 동안이 정보를 기록하는 과정을 A.sh 수 : 나는 다음과 같은 인쇄 A.sh을 하시겠습니까?
질문에서 언급했듯이 백그라운드에서 어떤 프로세스를 시작하고 싶지 않습니다. & 연산자는 백그라운드에서 프로세스를 시작합니다. 포어 그라운드에서 대신 실행하려는 명령에'pstree'를 사용하는 방법이 있습니까? –
어떻게해야합니까? 하나의 전경 과정 만있을 수 있습니다. 그러나 백그라운드에서 프로세스를 시작하면 어떤 문제가 발생합니까? 내 대답에'wait' 명령을 추가했습니다. 그것은 기본적으로 당신을 위해 잘 작동해야합니다. 한 가지 점을 제외하고, 요청한 순간에 프로세스가 이미 시작되었음을 어떻게 보장 할 것입니까? – hek2mgl
포킹은 나에게 B.sh의 PID만을 제공합니다. B.sh가 실행되는 동안 지속적으로'pstree'를 폴링해도 여전히 일부 아이들을 그리워 할 수 있습니다. 일정 기간 동안 모든 하위 프로세스의 생성을 관찰하는 무언가가 필요합니다. 그렇다면 하위 트리를 분리하기위한 필터링은 어렵지 않습니다. –