Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 竹子中SSH上的nohup命令不存在_Bash_Ssh_Bamboo - Fatal编程技术网

Bash 竹子中SSH上的nohup命令不存在

Bash 竹子中SSH上的nohup命令不存在,bash,ssh,bamboo,Bash,Ssh,Bamboo,在竹服务器中,可以设置部署计划并使用SSH任务执行命令。我有一个启动java进程的任务。我编写了以下命令来启动它,让它保持运行并从远程服务器退出: nohup java -jar project.jar 2>&1 1>/dev/null & 使用此命令,SSH任务永远不会关闭,Java进程输出由部署记录,直到我登录到远程服务器并终止该进程。因此,我查看了一个有效的旧部署计划,当更改为此计划时: nohup java -jar project.jar </dev

在竹服务器中,可以设置部署计划并使用SSH任务执行命令。我有一个启动java进程的任务。我编写了以下命令来启动它,让它保持运行并从远程服务器退出:

nohup java -jar project.jar 2>&1 1>/dev/null &
使用此命令,SSH任务永远不会关闭,Java进程输出由部署记录,直到我登录到远程服务器并终止该进程。因此,我查看了一个有效的旧部署计划,当更改为此计划时:

nohup java -jar project.jar </dev/null>/tmp/project.log 2>&1 &
进程在服务器上运行,任务按预期关闭。
有人能解释为什么第一个命令和第二个命令一样不释放吗?

重定向的顺序很重要!具体来说,2>&1意味着将标准错误发送到标准输出当前所在的位置。在您的示例中:

... 2>&1 1>/dev/null ...
意味着将stderr发送到当前的stdout,即ssh会话,然后将stdout重定向到/dev/null,这样stderr将指向ssh会话

在工作示例中:

... >/tmp/project.log 2>&1 ...
意味着将stdout发送到一个文件,然后将stderr发送到stdout所指向的位置,这样两者最终都会指向该文件

工作示例也会这样做

</dev/null
确保标准输入不再连接到SSH会话;你的第一个例子没有做到这一点


总之,非工作示例将stdin和stderr都连接到SSH会话;这通常解释了ssh任务没有完成的原因。

重定向的顺序很重要!具体来说,2>&1意味着将标准错误发送到标准输出当前所在的位置。在您的示例中:

... 2>&1 1>/dev/null ...
意味着将stderr发送到当前的stdout,即ssh会话,然后将stdout重定向到/dev/null,这样stderr将指向ssh会话

在工作示例中:

... >/tmp/project.log 2>&1 ...
意味着将stdout发送到一个文件,然后将stderr发送到stdout所指向的位置,这样两者最终都会指向该文件

工作示例也会这样做

</dev/null
确保标准输入不再连接到SSH会话;你的第一个例子没有做到这一点

总之,非工作示例将stdin和stderr都连接到SSH会话;这通常解释了ssh任务没有完成的原因