我要解释一下我遇到的问题有点复杂:
有问题的命令行看起来像这样:
$ 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 &
上述标记 stderr 的技术是最近在 stackoverflow 上学到的。
预先感谢您提供任何线索。
我的
nohup
的手册页说 nohup [ options ] command [arg ...]
。
我记得在某个地方读过,
nohup
不处理管道,我认为这就是你所拥有的。
尝试将管道进程重新制作为接受参数的脚本,它应该可以工作。
将命令放入 shell 脚本中并 nohup 该脚本。
所以如果yourscript包含:
#!/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 你的脚本&