我们正在使用以下 bash 命令启动 Jenkins CI,我希望能够理解。有人能解释一下它在做什么吗(我唯一能理解的是“java -jar jenkins.war”)。谢谢!
nohup java -jar jenkins.war > $HOME/jenkins.log 2>&1 < /dev/null &
答案1
这nohup
意味着当你退出 shell 时它将继续运行。
该>
方法将标准输出重定向到文件
重定向到的文件是。您可以通过运行来$HOME/jenkins.log
找到 的值$HOME
echo $HOME
2>&1
表示将标准错误重定向到标准输出,因此在这个例子中也会进入$HOME/jenkins.log
。
意思< /dev/null
是从 读取数据/dev/null
。因此,如果脚本正在等待输入,它将读取该数据,而不是等待用户输入。
并且该&
方法作为后台任务运行,并将您返回到命令行。
如果您想了解更多详细信息,请在评论中提问。
答案2
nohup
从当前终端会话中分离以下命令,以防止在终端退出时关闭进程。
java
然后使用选项运行 Java VM
-jar jenkins.war
它告诉 java 从 jar-archive jenkins.war 中运行主类
>
将标准输出(通常出现在终端中)转发到给定的文件中,在本例中为$HOME/jenkins.log
2>&1
表示将错误通道的optput接到标准输出通道的输出上。
< /dev/null
将“无”作为输入流发送到 java 命令。
最后,& 强制将任务置于后台,以便控制返回到提示。