杀死父级时抑制输出

时间:2016-01-14 17:35:42

标签: bash shell unix kill

当目标进程是当前进程的父进程时,如何抑制kill产生的输出?

我正在使用以下函数退出任何级别的嵌套shell但保持最后一个打开:

function surface(){
    if [ $SHLVL -gt 1 ]; then
        target=$(pstree -p $$ | grep -m 2 sh$ | tail -1 | awk '{print $2}') &>/dev/null
        kill -1 $target &>/dev/null
    fi
}

但是仍然会将消息Hangup: 1打印到终端。

wait $target失败后添加killwait会导致错误:bash: wait: pid 1234 is not a child of this shell

我也尝试使用disown,但同样失败,因为目标进程是当前进程的父进程。

相关:

How to suppress Terminated message after killing in bash?

How to shield the kill output

bash: silently kill background function process

0 个答案:

没有答案