【发布时间】:2015-04-15 15:45:24
【问题描述】:
我有一个专门用作 Jenkins 从属的 Ubuntu 虚拟机。我编写了一个单行脚本来运行从属 jar,并从 /etc/rc.local 运行该脚本。当我手动运行脚本时,我得到几行输出表明它正在工作。我尝试定义 rc.local 行和脚本,以便将 stdout/stderr 存储在一个文件中,但该文件的长度始终为零,修改时间为我启动进程的时间。
在下文中,一些字段用“=stuff=”省略。
我的“/etc/rc.local”的结尾是这样的:
su -c "/home/=user=/bin/jenkinsconnect" =user=
exit 0
“jenkinsconnect”脚本如下所示:
#! /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 > file首先将 stderr 重定向到 stdout,然后(仅)重定向 stdout。您需要>file 2>&1首先将stdout重定向到文件,然后将stderr重定向到stdout指向的位置。
标签: java bash jenkins ubuntu-14.04