시스템 명령을 사용하여 시작된 프로세스의 프로세스 ID

시스템 명령을 사용하여 시작된 프로세스의 프로세스 ID

우분투 운영 체제에서 쉘을 열고 다음과 같은 방법으로 matlab과 같은 소프트웨어를 연다고 가정해 보겠습니다.

matlab &

MATLAB GUI에서 시스템 명령을 실행합니다.

system('/path/to/my/cppprog') % <-- PID of this running program?

그곳에서 나는 "cppprog"라는 C++ 프로그램을 시작했습니다.

이제 내가 시작한 프로그램과 관련된 프로세스 ID를 찾고 싶습니다. 어떻게 해야 합니까? 다른 명령줄 인수를 사용하여 동일한 프로그램의 여러 시스템 명령을 호출할 수 있습니다.

답변1

스크립트 pid가 아닌 셸에서 가져오는 것을 의미한다고 가정합니다 .matlab

matlab다음과 같이 스크립트의 모든 하위 항목을 볼 수 있습니다 .

matlab &
pstree -ap $!

$!백그라운드에서 실행한 마지막 명령의 pid입니다. 마지막 항목이 아닌 경우 matlab의 pid를 찾거나 현재 셸의 pid를 pidof matlab사용하여 해당 셸의 모든 하위 항목을 표시합니다.$$matlab

관련 정보