我在AIX 5.3上有一個啓動Shell腳本(ksh)的程序(C++ Executable)。孤兒(ksh Shell腳本在CTRL-X時不會先終止)
當我啓動程序和shell腳本,我看到兩個進程
AIX:>ps -ef | grep 3657892
u001 **3657892** 3670248 0 18:16:34 pts/11 0:00 /u0012006/bin/Launcher
u001 3723398 **3657892** 0 18:16:41 pts/11 0:00 /usr/bin/ksh /u0012006/shell/Trjt_Slds.sh -m
現在,當我在鍵盤上一個CTRL-X組合鍵結束,走出去的shell腳本中,當shell腳本繼續執行時,主啓動程序(C++ Executable)進程被終止。
AIX:>ps -ef | grep 3723398
u001 3723398 1 106 18:16:41 pts/11 0:01 /usr/bin/ksh /u0012006/shell/Trjt_Slds.sh -m
u001 3731504 3723398 0 0:00 <defunct>
u001 3735612 3723398 0 0:00 <defunct>
u001 3739838 3723398 0 0:00 <defunct>
這會導致CPU消耗達到100%,並導致很多停用的進程啓動。
當我執行CTRL-X時,有沒有辦法讓AIX Shell腳本第一次終止?
你能提供的shell腳本的代碼片段,或者關於它的作用?在某些情況下,簡單地使用'exec program''可以通過完全消除shell進程來解決這個問題。 –
@RudyMatela感謝您的輸入。不幸的是用C++編寫的Launhcer程序不能改變。我可以改變腳本。該腳本本身在一個無限循環中運行,詢問我從用戶那裏獲得的參數,並查詢Oracle DB並獲取結果並顯示給用戶,並在循環中繼續。我已經在http://dpaste.com/1271101/上粘貼了一個可能感興趣的代碼片段。這只是代碼片段的一部分,並且代碼循環完成了我上面指出的內容。 – Guddu