为什么脚本不会在5s后调用清理并终止脚本,而且我也希望得到它停止的位置

时间:2015-07-08 09:45:04

标签: bash shell kill shell-trap

该脚本旨在在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

1 个答案:

答案 0 :(得分:0)

因为父进程正在等待睡眠100结束“处理”。如果你想在睡眠结束前处理结束,你也应该杀了他。

类似

(sleep 5 && echo "timeout";kill -TERM `ps -ef | grep $mainpid | grep sleep |  grep -v grep| awk '{print $2}'` $mainpid) &