当目标进程是当前进程的父进程时,如何抑制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
失败后添加kill
,wait
会导致错误:bash: wait: pid 1234 is not a child of this shell
。
我也尝试使用disown
,但同样失败,因为目标进程是当前进程的父进程。
相关: