工作中需要将升级后的应用程序部署到Linux机器。以前对Linux不太熟悉,在部署的过程学到一些Linux命令。

    应用程序是用Java,打包成jar文件。通过java -jar XXXXX.jar启动程序。

    我使用F-Secure SSH Client工具,但是一旦关闭远程连接客户端,程序就停止。

    后来,还是询问公司同事,使用nohup java -jar XXXXX.jar & 命令可以保证命令在后台运行。 同时,这个命令还会在这个目录下创建一个nohup.out文件,并所有输出和错误信息写入。
    这样,就可以通过命令:tail -f nohup.out 来实时监控程序的运行了。

   
     如果想停止,可以通过使用ps -ef , 然后再使用kill <PID>即可。

nohup 命令
用途 不挂断地运行命令。

语法
nohup { -p pid | Command [ Arg ... ] [ & ] }

描述
nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,同时忽略所有的挂起(SIGHUP)信号,或者修改用 -p 选项指定的进程来忽略所有的挂起(SIGHUP)信号。

在注销后还可以使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &(表示“and”的符号)到命令的尾部。

注:不能同时指定 -p pid 和 Command。
使用 -p pid 时,指定进程的输出将不会重定向到 nohup.out。

标志
-p pid pid 是正在运行的进程的进程标识。nohup 命令修改指定进程来忽略所有的挂起(SIGHUP)信号。

退出状态
该命令返回下列出口值: 126 可以查找但不能调用 Command 参数指定的命令。
127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。

否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。