“kill %{job id}”与“kill {job pid}”

“kill %{job id}”与“kill {job pid}”

我正在与一些人合作tail -f path/to/my/log/file | grep pattern&,我需要尽快终止这个过程。使用 classic 时kill {tail PID},tail 仍然显示其缓冲区,并且需要大约 12 秒(在我的设置中)才能使 tail 完全静音。

kill %{job id}然而,当我用(略多于一秒)杀死它时,它要快得多。

调用kill {tail PID}and有什么不同kill %{job id}

一些样本:

01/09/2021 15:45:29:670:kill {tail PID}
...
01/09/2021 15:45:39:232: {some log}
01/09/2021 15:45:39:232: {some log}
01/09/2021 15:45:39:232: {last log line}  
takes around 10 seconds to fully shutdown

与kill %{job id}:

01/09/2021 10:56:57:793 -> (COM12<):kill %{tail job ID}
...
01/09/2021 10:56:58:966 -> (COM12>):[root@my_board ~]# 
takes 1 sec to fully shutdown

答案1

当您使用kill %6 终止作业时,您也终止了尾部并终止了grep。

tail -f /var/log/mintupdate.log|grep ez&
[6] 3368377

如果您杀死 3368377,则仅杀死 grep 进程。

3368376 pts/6    S      0:00 tail -f /var/log/mintupdate.log
3368377 pts/6    S      0:00 grep --color=auto ez

当然,它也会导致杀死 tail -f ......

相关内容