【发布时间】:2011-11-12 17:11:20
【问题描述】:
当我将命令作为后台进程调用时,将命令的输出重定向到文件时遇到问题。
spawner.sh user@host "../.profile >> /dev/null 2>&1;runjobs SOMEJOB" > test.log &
spawner.sh 脚本使用 #!/usr/local/bin/expect 解释器,它在远程主机上生成一个新进程 (SOMEJOB) 并与之交互。当我删除此语句末尾的 & 符号时,输出将被写入 test.log 文件。但是当我在后台运行它时(使用 & 号),我的日志文件是空的。
男生女生有什么想法吗?
【问题讨论】:
-
脚本完成后也没有出现吗?我可以想象在后台运行会对缓冲产生影响。
-
它没有完成:D。这就是为什么我需要将输出写入文件的原因。我正在解析输出,所以我可以看到所有有用的工作何时完成,所以我可以终止该进程。在我杀死这个子进程之前,我的主脚本不会继续。我别无选择,我必须这样做。不要问:D
-
expect 进程是本地运行还是远程运行?
标签: linux shell scripting expect sh