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

Jenkins slave process on ubuntu not showing any logging

我有一个 Ubuntu VM 专用于 Jenkins 从属。我为 运行 slave 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 语法将不起作用。您应该:

  1. 使用 &> 将 stderr 和 stdout 都指向一个文件,或者
  2. 用圆括号括起整个命令以捕获输出:

    (java -jar /home/=user=/opnfv_slave_root/slave.jar ... 2>&1) > /home/=user=/jc.log