当我将命令作为后台进程调用时,我遇到了将命令输出重定向到文件的问题。
spawner.sh user @ host“./ .profile>> / dev / null 2>& 1; runjobs SOMEJOB“> test.log&
spawner.sh脚本使用#!/ usr / local / bin / expect解释器,它在远程主机上生成一个新进程(SOMEJOB)并与之交互。当我在此语句的末尾删除&符号时,输出将被写入test.log文件。但是当我在后台运行它时(使用&符号),我的日志文件为空。
任何想法的男人和女孩?
答案 0 :(得分:0)
尝试在期望脚本中关闭stdout缓冲。
fconfigure stdout -buffering none
答案 1 :(得分:0)
我遇到了与python脚本相同的问题,结果证明是python中的缓冲 使用-u选项,如 python -u < / dev / null>>文件2>& 1& 解决了我的问题。
其他脚本语言可能与 python -u
具有相似的选项