Bash
為什麼我的陷阱不列印任何日誌消息?
我正在做的是,
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*
(可能除了1
、2
和15
)。PS 您不需要在命令 arg
;
的末尾使用分號 ( ) 。trap