Bash 如何处理从命令行生成的子流程?
我要解释我遇到的问题有点复杂: 我有一个长时间运行的nohupped进程,它将其stderr重定向到一个文件中。 但是,我使用一个子流程在stderr上打上时间戳。 不幸的是,上面提到的子流程并不是我的错! 现在,我如何使这个子进程以某种方式不被中断,并保留stderr,即使在我注销后仍继续访问该文件。我必须注销服务器。 所讨论的命令行如下所示:Bash 如何处理从命令行生成的子流程?,bash,stderr,Bash,Stderr,我要解释我遇到的问题有点复杂: 我有一个长时间运行的nohupped进程,它将其stderr重定向到一个文件中。 但是,我使用一个子流程在stderr上打上时间戳。 不幸的是,上面提到的子流程并不是我的错! 现在,我如何使这个子进程以某种方式不被中断,并保留stderr,即使在我注销后仍继续访问该文件。我必须注销服务器。 所讨论的命令行如下所示: $ nohup myscript.sh -op1 val1 -op2 val2 -op3 val3 >mystderr.txt 2> &g
$ nohup myscript.sh -op1 val1 -op2 val2 -op3 val3 >mystderr.txt 2> >(while read line; do echo "$(date): ${line}"; done > n100l1800g0.5.err ) < /dev/null &
最近在stackoverflow学习了上面的冲压stderr技术
提前感谢您提供的任何线索。我看到的nohup手册页上写着nohup[options]command[arg…]
我记得在某个地方读到nohup不处理管道,我想这就是你们所拥有的
尝试将管道进程重新设计为接受参数的脚本,它应该可以工作
我希望这会有所帮助。将您的命令放入shell脚本中,然后nohup脚本 因此,如果您的脚本包含:
#!/bin/bash
myscript.sh -op1 val1 -op2 val2 -op3 val3 >mystderr.txt 2> >(while read line; do echo "$(date): ${line}"; done > n100l1800g0.5.err ) < /dev/null
然后从命令行
$nohup您的脚本&
欢迎来到Stackoverflow并感谢您的回答,但这并不能回答问题。问题是这个命令已经执行了,之后他想将这个进程转换成一个带有nohup的进程。