Bash

為什麼我的陷阱不列印任何日誌消息?

  • August 12, 2014

我正在做的是,

trap 'rm -f /path/of/file/fileName.running; echo "TRAPPED & READY";' 1 2 9 15 >> trap.log

我沒有在日誌中得到任何內容,並且應該刪除的文件仍然存在,我不確定哪個信號可能會在腳本執行時停止腳本,因為我只是在殺死腳本正在使用的伺服器.

注意:如果該文件存在,我的 Cron-Scheduled 作業將不會執行,並且我認為我沒有錯過任何可能的信號。我哪裡錯了?

您的部分問題是您有>> trap.log外部(引用的)命令 arg,因此您在trap.log文件中獲得的只是trap命令本身的輸出 - 這沒什麼。我不確定您在腳本終止時說“TRAPPED & READY”是什麼意思,但看起來您的意思是

陷阱'rm -f*文件名*; 迴聲“*消息*”>> *trap.log'sigspec* ...

我同意 Karlo:如果你“只是殺死腳本正在使用的伺服器”,那麼腳本很可能正在退出(而不是被信號殺死),你應該使用EXIT(或者,等效地,0*sigspec* (可能除了1215)。

PS 您不需要在命令 arg;的末尾使用分號 ( ) 。trap

引用自:https://unix.stackexchange.com/questions/149852