这就是我想要实现的目标:
这可能吗?因为要在后台真正运行它,我们不必在将其标记为后台进程之前进行重定向吗?或者有一些技巧可以解决这个问题吗?
答案 0 :(得分:6)
您可以重定向到临时文件,然后将mv
该文件重定向到所需的名称,例如
process > /tmp/process.log &
mv /tmp/process.log /tmp/$!.log
$!
是先前落后的流程的pid。请注意,mv只是重命名该文件。它不会打断写入它。
答案 1 :(得分:2)
在bash中运行exec
命令会将当前进程(执行bash的进程)替换为您正在执行的进程。像
bash -c "exec top > ${BASHPID}.temp" &
应该有用。