我喜歡從shell腳本知道應用程序是否崩潰。如果應用程序崩潰,退出代碼是什麼?崩潰時退出代碼
Q
崩潰時退出代碼
2
A
回答
2
返回代碼應用程序的退出代碼將在shell變量$?。如果您的應用程序崩潰,即操作系統決定它做了一些不好的事情,並導致它終止(發送一個信號),那麼這反映在退出狀態$?。
下面是一個簡單的功能,我使用(在bash我將其設置爲可變PROMPT_COMMAND)把做的退出狀態
check_exit_status()
{
local status="$?";
local msg="";
local signal="";
if [ ${status} -ne 0 ]; then
if [ $((${status} < 128)) -ne 0 ]; then
msg="exit (${status})";
else
signal="$(builtin kill -l $((${status} - 128)) 2>/dev/null)";
if [ "$signal" ]; then
msg="kill -$signal$msg";
fi;
fi;
echo "[${status} => ${msg}]" 1>&2;
fi;
return 0
}
希望你覺得它有用一些解碼。
1
除0以外的任何值都表示發生錯誤。錯誤值範圍從1-255。用$?
檢查它們。
這有一些例外,但成功爲0是* nix上的事實標準。
2
正常情況下,返回代碼爲0時,沒有任何錯誤。您可以檢查與$?
[email protected]:~$ badCommand badCommand: command not found [email protected]:~$ [email protected]:~$ echo $? 127 [email protected]:~$ [email protected]:~$ whoami fab [email protected]:~$ [email protected]:~$ echo $? 0 [email protected]:~$
0
似乎this is an answer你的問題。這裏的代碼片段表明答案取決於操作系統(包括Windows)。
+0
該博客已對公衆開放:「此博客僅面向受邀讀者開放http://meta-coding.blogspot.com/看起來您並未被邀請閱讀此博客。如果您認爲這是一個錯誤,您可能需要聯繫博客作者並請求邀請。「:-( – Pedro 2017-04-25 14:58:39
相關問題
- 1. ffmpeg的崩潰,並退出代碼0xc0000022
- 2. PhantomJS崩潰 - 退出代碼126
- 3. UIDocumentInteractionController在退出時崩潰
- 4. tkinter退出崩潰
- 5. Tkinter python退出/退出崩潰
- 6. 此代碼何時崩潰?
- 7. 程序在退出時崩潰
- 8. 退出時扭曲/ tkinter程序崩潰
- 9. 崩潰時自動退出程序?
- 10. 退出時JavaFx應用程序崩潰
- 11. C++/SFML程序在退出時崩潰
- 12. 在應用程序崩潰時退出
- 13. vim在保存和退出時崩潰
- 14. 程序在退出時崩潰
- 15. 退出Qt程序崩潰
- 16. 退出VB 6崩潰
- 17. 崩潰在退出應用
- 18. 爲什麼PyQt崩潰沒有信息? (退出代碼0xC0000409)
- 19. Qt的GDB崩潰我的退出代碼應用1
- 20. 退出後DirectShow代碼崩潰(PushSourceDesktop示例)
- 21. GDB退出/崩潰而試圖調試TensorFlow C++代碼
- 22. throw導致代碼崩潰而不是僅僅退出
- 23. 崩潰jQuery代碼
- 24. collapsible面板崩潰代碼不崩潰
- 25. 倒計時Excel VBA - 代碼崩潰excel
- 26. C代碼在運行時崩潰
- 27. 添加視圖時代碼崩潰
- 28. 執行代碼時我的Android崩潰
- 29. 退出代碼
- 30. BulletSharp崩潰的應用程序退出
不錯的例子。感謝您宣傳超級簡單的示例/測試。根據OP的問題,實際崩潰的應用程序是否會很好地返回非零退出代碼?或者當你看到一個sig-fault或其他致命錯誤時返回錯誤代碼,或者你是否需要監視std-err輸出是否存在'sig-falut'等錯誤消息?有人知道嗎? – shellter 2011-03-27 18:51:28