在shell中kill掉后台子进程

在shell中kill掉后台子进程,如何不显示kill后台进程时的Terminated 提示信息
kill后台进程如何屏蔽shell输出kill的消息

 

#! /bin/bash
 clear
 
function process_signal(){
     echo "generating a background child process"
     for ((i=9; i>=0; i--))
     do
         ## 接收HUP信号,并进行处理
         trap 'echo -e "\nchild process catched HUP signal and exit"; exit 0' HUP
         sleep 1
         echo -e "\rsleeping ${i}s ...\c"
     done &
     ## 创建后台进程
     ## 获取最近创建的后台进程的PID
     BG_PID=$!
     
     sleep 3
     ## 向后台进程发HUP信号
     echo -e "\nkill HUP signal to child process ${BG_PID}"
      (kill -HUP ${BG_PID})
 
    ## 如果直接使用    (kill -9 ${BG_PID}) 结束后台子进程,
     ## 将会有多余的消息被打印
 
    VAR="hello good morning"
     echo ${VAR}
     echo "function finished."
 }
 
process_signal
 echo ${VAR}
 echo ${VAR}
 echo ${VAR}
 echo "sleeping 3s .. "
 sleep 3


#! /bin/bash
clear

function process_signal(){
    echo "generating a background child process"
    for ((i=9; i>=0; i--))
    do
        ## 接收HUP信号,并进行处理
        trap 'echo -e "\nchild process catched HUP signal and exit"; exit 0' HUP
        sleep 1
        echo -e "\rsleeping ${i}s ...\c"
    done &
    ## 创建后台进程
    ## 获取最近创建的后台进程的PID
    BG_PID=$!
    
    sleep 3
    ## 向后台进程发HUP信号
    echo -e "\nkill HUP signal to child process ${BG_PID}"
     (kill -HUP ${BG_PID})

    ## 如果直接使用    (kill -9 ${BG_PID}) 结束后台子进程,
    ## 将会有多余的消息被打印

    VAR="hello good morning"
    echo ${VAR}
    echo "function finished."
}

process_signal
echo ${VAR}
echo ${VAR}
echo ${VAR}
echo "sleeping 3s .. "
sleep 3

########################################################

=====================================================
如果直接使用kill -9将会出现一下打印信息;
generating a background child process
sleeping 8s ...
kill HUP signal to child process 8546
signal_process.sh: line 4:  8546 Killed  (Terminated)                for ((i=9; i>=0; i--))
do
    trap 'echo -e "\nchild process catched HUP signal and exit"; exit 0' HUP; sleep 1; echo -e "\rsleeping ${i}s ...\c";
done

hello good morning
function finished.
hello good morning
hello good morning
hello good morning
sleeping 3s ..

如果改为以上形式就不会有多余的信息显示;
如果是kill -2 会被忽略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值