Ubuntuオペレーティングシステムでシェルを開き、次の方法で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