,linux,bash,kill"/>

首页 > 解决方案 > 我想输出“杀死 ~" 当它杀死 -9 时记录到日志文件

问题描述

我想将此消息输出/usr/local/ex1.sh: line xxx: <PID> Killed ex2.sh >> $LOG_FILE 2>&1到日志文件。

然而

/usr/local/ex1.sh: line xxx: <PID> Killed ex2.sh >> $LOG_FILE 2>&1当我在控制台中执行时,“ex1.sh”输出到ex1.sh控制台。

我想要的结果是“ex1.sh”输出到文件,而不是输出到控制台。

这个来源是“ex1.sh”。

ex2.sh >> $LOG_FILE 2>&1 &
PID=`ps -ef | grep ex2.sh | grep -v grep | gawk '{print $2}'`
/bin/kill -9 $PID >> $LOG_FILE 2>&1 &

为什么“ex1.sh”会将此消息输出到控制台?

标签: linuxbashkill

解决方案


原因是消息'/usr/local/ex1.sh: line xxx: <PID> Killed ex2.sh >> $LOG_FILE 2>&1是由bash shell给出的,而不是由kill命令给出的。

因此,如果您将kill命令输出重定向到文件,您将不会在文件中获得消息。

如果运行 like ./ex1.sh >> $LOG_FILE 2&>1,消息将在日志文件中。因为./ex1.shfork 一个新的 bash 进程,所以 bash 进程会发出消息。


推荐阅读