繁体   English   中英

在后台运行时,Tee命令不起作用

[英]tee command not working when run in background

我想要一个守护程序,该守护程序连续监视命名管道的输入,然后创建两个文件:一个包含通过命名管道的所有数据的文件,另一个包含其过滤版本的文件。

当我从命令行运行此命令时,它按预期运行,$ ACTIONABLE_LOG_FILE被创建为$ LOG_FILE_BASENAME的过滤版本:

cat $NAMED_PIPE | tee -a "$LOG_FILE_BASENAME" | grep -P -v "$EXCEPTIONS" >> "$ACTIONABLE_LOG_FILE" &

但是,当我在后台运行以下代码时,没有任何内容附加到$ ACTIONABLE_LOG_FILE:

while true
do
   cat $NAMED_PIPE | tee -a "$LOG_FILE_BASENAME" | grep -P -v "$EXCEPTIONS" >> "$ACTIONABLE_LOG_FILE" &
   wait $!
done

文件$ ACTIONABLE_LOG_FILE已创建,但未附加任何内容。 这里发生了什么?

我的怀疑是,当被守护时,您没有可用的完整环境,因此没有$PATH 命令的完整路径(可能是/usr/bin/tee )可能会有所帮助。 您可以在本地使用which tee确认。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM