我在通過system
調用來調用「slave」perl腳本的「master」腳本中創建Perl線程。如果這不好,請隨時給我啓發。有時被調用的從腳本將失敗,並且die
。我如何在主腳本中知道這一點,以便我可以殺死主人?如何知道線程是否在Perl中使用die
有沒有一種方法可以向主線程返回一條消息,指示從服務器已正確完成?我明白,儘管在一個線程中使用exit是不好的做法。請幫忙。
============================================== ==================================== 編輯:
澄清,我有約8每個運行一次的線程。它們之間存在依賴關係,所以我有阻止某些線程在初始線程完成之前運行的障礙。
此外,系統調用與tee
完成,所以這可能是返回值很難得到的原因的一部分。
system("((" . $cmd . " 2>&1 1>&3 | tee -a $error_log) 3>&1) > $log; echo done | tee -a $log"
我選擇使用線程的主要原因是因爲我有依賴和需要爲某些工作設置障礙。這可以用叉子完成嗎?我對Perl中的多線程知之甚少。 – Stuart
有沒有辦法讓slave線程使用'system'向主線程返回一個值? – Stuart