该脚本旨在在5秒后自杀。但它不会在5s后杀死脚本,也不会调用清理。
重要的是我希望在i
停止时获得值#!/bin/sh
trap "cleanup" TERM
#call the cleanup when recive TERM
mainpid=$$
#script's pid
cleanup()
{
echo "cleaup called"
echo "i=$i when it is stopped "
exit 1
}
(sleep 5 && echo "timeout";kill -TERM $mainpid) &
#after 5s it should kill the script
run_test()
{
i=1
sleep 100
i=$$(i+1)
}
run_test 2>&1 > x.log
。
javax.swing.JTable
答案 0 :(得分:0)
因为父进程正在等待睡眠100结束“处理”。如果你想在睡眠结束前处理结束,你也应该杀了他。
类似
(sleep 5 && echo "timeout";kill -TERM `ps -ef | grep $mainpid | grep sleep | grep -v grep| awk '{print $2}'` $mainpid) &