2012-11-14 57 views
0

我們有一堆java進程在AUTOSYS服務器的不同時間運行。 大多數java進程沒有退出語句,因此我們在shell腳本中編寫了幾個停止作業來終止正在其預定停止時間運行的進程。當我們殺死這些進程時,Autosys作業狀態被設置爲Terminated,因此我們正在不知不覺地收到警報。UNIX信號到AUTOSYS

當前我們使用KILL -9 PROCESS_ID命令來終止將autosys作業設置爲TE的過程。

是否有任何可以順利退出進程的UNIX命令,以便將AUTOSYS狀態更改爲SU(成功)? 。

回答

1

最簡單的做法是將java調用包裝在一個shell腳本中,該腳本讀取終止退出代碼並讀取表示信號終止的退出代碼,然後退出並返回0代碼。

例如

#!/bin/bash -p 

java dothestuff 
rc=$? 
if [ $rc -eq 130 ]; then 
    echo "Killed by SIGINT" 
    exit 0 
fi 
exit $rc 
+0

感謝您的答覆,但在我的項目,該項目被稱爲是java dothestuff(這裏的Java是同時無限循環並沒有system.exit在java文件)的Java服務,將非RC變量在這種情況下是空的? – chebus

+0

JVM在被信號終止時將終止於非零退出代碼。 – Petesh