当 运行 在后台时,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" &
但是当我在后台留下以下代码 运行ning 时,没有任何内容附加到 $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
.
确认
我想要一个持续监视命名管道输入的守护进程,然后创建两个文件:一个包含所有通过命名管道的数据,另一个包含它的过滤版本。
当我从命令行 运行 此命令按预期工作时,$ACTIONABLE_LOG_FILE 被创建为 $LOG_FILE_BASENAME:
的过滤版本cat $NAMED_PIPE | tee -a "$LOG_FILE_BASENAME" | grep -P -v "$EXCEPTIONS" >> "$ACTIONABLE_LOG_FILE" &
但是当我在后台留下以下代码 运行ning 时,没有任何内容附加到 $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
.