【发布时间】:2020-06-01 23:51:09
【问题描述】:
我必须杀死一个我通过
打开的程序$pid = open(FH, "program|")
或
$pid = or open(FH, "-|", "program")
但是,程序(具体来说是mosquittto_sub)仍然在后台徘徊,因为open正在返回perl用来运行程序的sh的PID,所以我只是杀死@ 987654325@ wrapper 而不是实际的程序。
有没有办法让程序获得真正的 PID?获取sh 的PID 有什么意义?
【问题讨论】:
-
您是在
pid上使用kill还是在FH上使用close? -
killon$pid,因为子程序在关闭时挂起/阻塞。所以我必须手动杀死它,而不是仅仅调用close
标签: perl perl-io perl-ipc-run