請考慮此的bash腳本:bash的陷阱不會忽視信號
#!/bin/bash
trap '' INT
echo sleep:
sleep 5
echo rsync:
rsync -a /usr/lib /var/tmp
試圖中斷與CTRL-C睡眠失敗,符合市場預期。但rsync是可中斷的(睡眠順序& rsync並不重要)?任何想法都歡迎!
編輯: 找到了一個區別:rsync本身啓動2個子程序(客戶端/服務器,它產生2個錯誤信息,我假設),而且這些似乎不會繼承它的父母的'無知'。必須深入bash的來源,並找出如何陷阱正在工作...
'rsync'正在設置自己的信號處理程序,覆蓋你的? – tripleee
這裏是一個非常類似的問題的鏈接。看那裏可能會有幫助。 http://stackoverflow.com/questions/9624947/bash-not-trapping-interrupts-during-rsync-subshell-exec-statements – davak
感謝您的鏈接,但我已經讀過那個。但解決這個問題並沒有幫助我 - 或者我沒有以正確的方式讓他們停下來:/ @tripleee:那麼陷阱是沒用的?爲什麼ctrl-c會通過shell? – user1854128