我有一個Perl腳本,下面的代碼。爲什麼我得到意想不到的返回碼?
...
$kill = 1;
$exit = 0;
`kill -9 $pid >& /dev/null`;
...
print "kill=$kill exit=$exit\n";
if ($kill) {
exit $exit;
} else {
...
總之,該腳本使用open3()來運行命令。在某個時候,它終止了工作,然後意圖是腳本將以代碼0退出。我插入了一條打印語句以顯示變量$kill
和$exit
的值,如下所示。
kill=1 exit=0
由於$kill
是1,我希望腳本與上面的代碼0退出,因爲$exit
是0。然而,該腳本與代碼9,它是發送到子信號退出。爲什麼Perl腳本以子代的退出代碼退出,而不是給予exit()
調用的代碼?
正交,但使用-9作爲'kill'參數不是一個好主意,除非是在緊急情況下。您拒絕該流程有權執行任何可能需要的清理任務。 – Ether 2010-06-21 19:55:26
$ pid的值是多少? – 2010-06-21 19:58:28