假设我有一个脚本parent.pl
使用child.pl
和system
命令调用另一个脚本start
,如下所示:
# parent.pl
system("START \"CHILD\" /WAIT perl child.pl");
print "$?\n";
Child.pl正在运行需要很长时间的操作:
# child.pl
while (1) {}
现在我使用TASKKILL
来终止child.pl
。
TASKKILL /FI "WINDOWTITLE eq CHILD"
令人惊讶的是,parent.pl
打印的退出代码为0
。但是,如果我只是在child.pl
中拨打parent.pl
而不是使用START
命令,则退出代码为256
。
# parent.pl
system("perl child.pl");
print "$?\n";
START
是否始终以代码0
退出,即使它被杀了?有没有办法让它退出“正确”代码,如256
?