帮助理解命令行

帮助理解命令行

我们正在使用以下 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找到 的值$HOMEecho $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 命令。

最后,& 强制将任务置于后台,以便控制返回到提示。

相关内容