我有一个专门用作Jenkins奴隶的Ubuntu VM。我写了一个单线程脚本来运行slave jar,我从/etc/rc.local运行该脚本。当我手动运行脚本时,我得到几行输出显示它正在工作。我试图定义rc.local行和脚本,以便它将stdout / stderr存储在一个文件中,但是文件总是为零长度,并且在我开始进程的时候是modtime。
在下文中,某些字段被省略为“= 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是我开始这个过程的时候。
答案 0 :(得分:0)
2>&1 > file
语法不起作用。你应该:
&>
将stderr和stdout指向文件,或用括号括起整个命令以捕获输出:
(java -jar /home/=user=/opnfv_slave_root/slave.jar ... 2>&1) > /home/=user=/jc.log