我想输出这条消息/usr/local/ex1.sh: line xxx: <PID> Killed ex2.sh >> $LOG_FILE 2>&1
到日志文件。
但是
“ex1.sh”输出/usr/local/ex1.sh: line xxx: <PID> Killed ex2.sh >> $LOG_FILE 2>&1
当我执行 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”会将此消息输出到控制台?
最佳答案
原因是这条消息'/usr/local/ex1.sh: line xxx: <PID> Killed ex2.sh >> $LOG_FILE 2>&1
由 bash shell 给出,而不是由 kill
给出命令。
所以如果你重定向kill
命令输出到文件,您将不会在文件中收到消息。
如果像 ./ex1.sh >> $LOG_FILE 2&>1
那样运行,该消息将保存在日志文件中。因为./ex1.sh
fork 一个新的 bash 进程,bash 进程会发出消息。
关于linux - 我想在杀死 -9 <PID> 时将 "<PID> Killed ~"输出到日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54088054/