2
我ksh的版本是ksh93-KSH子進程沒有忽略SIGTERM
=>rpm -qa | grep ksh
ksh-20100621-3.fc13.i686
我有一個簡單的腳本是如下 - #cat test_sigterm.sh -
#!/bin/ksh
trap 'echo "removing"' QUIT
while read line
do
sleep 20
done
我執行腳本
# exec /bin/ksh
2. The script is executed from this ksh-
# ./test_sigterm.sh&
[1] 12136
和發送 「SIGTERM」 來源: - 從1號航站樓 1. KSH從/斌/ KSH如下開始2號航站樓 -
# ps -elf | grep ksh
4 S root 12136 30437 0 84 4 - 1345 poll_s 13:09 pts/0 00:00:00 /bin/ksh ./test_sigterm.sh
0 S root 18952 18643 0 80 0 - 1076 pipe_w 13:12 pts/5 00:00:00 grep ksh
4 S root 30437 30329 0 80 0 - 1368 poll_s 10:04 pts/0 00:00:00 /bin/ksh
# kill -15 12136
我可以看到我的test_sigterm.sh越做越在兩種情況下接受「SIGTERM」,在後臺(&)和前臺運行殺害。 但ksh手冊頁說 - 信號。 如果命令後跟&且監視器選項未激活,則調用的命令的INT和QUIT信號將被忽略。 否則,信號具有shell從其父項繼承的值(但請參閱下面的陷阱內置命令)。
是否知道或默認行爲ksh NOT NOT IGNORE SIGTERM?或者是與ksh子SIGTERM信號處理有關的問題?