我創建了一個小型Bash腳本來執行MySQL數據轉儲。由於轉儲可能相當大,因此我將該進程置於後臺,然後等待出現錯誤或日誌顯示在文件系統中。我有以下代碼:將STDERR重定向到Bash文件中會導致即使沒有錯誤也會創建文件。爲什麼?
mysqldump main_db > /loc/to/dmp/file.sql 2>/loc/to/error/log/file.log &
的問題是,我得到一個「/loc/to/error/log/file.log」文件的0大小(我假設意味着沒有真正的錯誤)時,有時即使沒有錯誤,該命令也會運行,這會殺死進程。
我不知道爲什麼STDERR會在沒有數據寫入時寫入文件。這是因爲&
後臺進程?
好吧,我不知道怎麼STDERR工作,以爲檢查一0的文件大小將成爲更深層次問題的創可貼。 – null 2009-08-10 18:21:32
問題不在於「STDERR如何工作」。這是shell重定向的工作原理。 – 2009-08-10 18:24:42