Java ubuntu上的Jenkins从属进程未显示任何日志记录

Java ubuntu上的Jenkins从属进程未显示任何日志记录,java,bash,jenkins,ubuntu-14.04,Java,Bash,Jenkins,Ubuntu 14.04,我有一个Ubuntu虚拟机专门作为詹金斯的奴隶。我编写了一个单行脚本来运行从属jar,并从/etc/rc.local运行该脚本。当我手动运行脚本时,我会得到几行输出,显示它正在工作。我试图定义rc.local行和脚本,以便它将stdout/stderr存储在一个文件中,但该文件的长度始终为零,modtime为启动进程的时间 在下面的示例中,一些字段被省略为=stuff= my/etc/rc.local的结尾如下所示: su -c "/home/=user=/bin/jenkinsconnect"

我有一个Ubuntu虚拟机专门作为詹金斯的奴隶。我编写了一个单行脚本来运行从属jar,并从/etc/rc.local运行该脚本。当我手动运行脚本时,我会得到几行输出,显示它正在工作。我试图定义rc.local行和脚本,以便它将stdout/stderr存储在一个文件中,但该文件的长度始终为零,modtime为启动进程的时间

在下面的示例中,一些字段被省略为=stuff=

my/etc/rc.local的结尾如下所示:

su -c "/home/=user=/bin/jenkinsconnect" =user=
exit 0
#! /bin/bash
java -jar /home/=user=/opnfv_slave_root/slave.jar -jnlpUrl https://=host=/ci/computer/att-build/slave-agent.jnlp -secret =secret= 2>&1 > /home/=user=/jc.log
jenkinsconnect脚本如下所示:

su -c "/home/=user=/bin/jenkinsconnect" =user=
exit 0
#! /bin/bash
java -jar /home/=user=/opnfv_slave_root/slave.jar -jnlpUrl https://=host=/ci/computer/att-build/slave-agent.jnlp -secret =secret= 2>&1 > /home/=user=/jc.log
正如我所说的,/home/=user=/jc.log的长度始终为零,modtime是在我开始这个过程的时候。

2>&1>文件语法将不起作用。你应该:

使用&>将stderr和stdout定向到文件,或 用括号括住整个命令以捕获输出:

java-jar/home/=user=/opnfv\u slave\u root/slave.jar。。。2> &1>/home/=user=/jc.log


检查我以前使用过的这个语法,我现在意识到我一直在做=process=>file2>&1,我认为这是有效的。尽管如此,我还是喜欢能够在重定向指示符之后移动>文件的想法,=process=2>&1>文件语法就是这样做的。我已经更改了脚本以使用该语法,它可以正常工作。2>&1>文件首先将stderr重定向到stdout,然后仅重定向stdout。您需要>文件2>&1,首先将stdout重定向到文件,然后将stderr重定向到stdout指向的位置。