后台进程的重定向输出未显示在文件中

时间:2011-09-08 06:11:46

标签: linux shell scripting expect sh

当我将命令作为后台进程调用时,我遇到了将命令输出重定向到文件的问题。

  

spawner.sh user @ host“./ .profile>> / dev / null 2>& 1; runjobs   SOMEJOB“> test.log&

spawner.sh脚本使用#!/ usr / local / bin / expect解释器,它在远程主机上生成一个新进程(SOMEJOB)并与之交互。当我在此语句的末尾删除&符号时,输出将被写入test.log文件。但是当我在后台运行它时(使用&符号),我的日志文件为空。

任何想法的男人和女孩?

2 个答案:

答案 0 :(得分:0)

尝试在期望脚本中关闭stdout缓冲。

fconfigure stdout -buffering none

答案 1 :(得分:0)

我遇到了与python脚本相同的问题,结果证明是python中的缓冲 使用-u选项,如 python -u < / dev / null>>文件2>& 1& 解决了我的问题。

其他脚本语言可能与 python -u

具有相似的选项