2012-09-15 22 views

回答

1

當你由cron程序,它與一個不尋常的環境中運行。特別是,沒有終端,環境變量不同,stdin和stdout通常都不可用,並且stderr被重定向,因此如果有任何失敗,它會通過電子郵件發送給您。正如我們從你的案例中的錯誤信息中可以看到的,stdout沒有打開(從技術上講,它只表示它不打開寫入,但即便如此)。如果沒有告知,puts默認爲在那裏寫。

基本修復?不要寫入標準輸出!在其他地方打開一個文件並寫入。或者,在crontab條目中定義標準輸出的重定向,以便它在某個確定的位置(因此可用於從您的Tcl程序中寫入)。

+0

管道輸出到['logger'](http://unixhelp.ed.ac.uk/CGI/man-cgi?logger+1)實用程序可能對cron作業有意義,因爲輸出到井已知的位置。 – kostix

+0

我從來沒有在cron作業(主要是Solaris)中使用stdout時遇到問題,經常在cron中將腳本的輸出傳遞給mailx –

+0

@glenn:我看了一下,它似乎因cron的實現而異。 –

相關問題