A. Linux下运行jar包的几种方式
1 阻塞式方式
java -jar xxx.jar
特点: 当前终端的会话窗口被阻塞, 可按CTRL + C中断程序的运行, 或者直接关闭会话窗口 —— 此时jar程序将终止.
2 后台运行方式
# 通过"&"符号实现后台运行:
java -jar xxx.jar &
特点: 当前终端的会话窗口不会被阻塞, 但是如果关闭当前窗口, 程序将终止运行.
3 后台持续运行方式
# 通过"nohup"命令实现后台运行:
nohup java -jar xxx.jar &
nohup命令是不挂断运行命令的意思.
特点: 当用户退出或终端关闭时, 程序的运行不受影响.
说明: 用nohup命令运行任务时, 默认情况下这个任务的所有输出都将被重定向到nohup.out文件中, 除非另外指定输出文件. 指定输出文件方式为:
# 将输出重定向到xxx.log文件中:
nohup java -jar xxx.jar > xxx.log &
> 符号是重定向符, 实现: 把它之前命令的所有输出信息重定向到后面的文件中, 而不是显示到屏幕上.
B. Linux下使用nohup运行jar文件
在Linux环境下,运行jar文件可以通过多种方式实现后台执行,具体方式及其特点如下:
方式1:在ssh窗口中使用nohup命令运行jar文件,这种方式下,当前ssh窗口会被锁定。若使用Ctrl+c打断程序运行或关闭窗口,则程序退出。
方式2:使用符号"&"代表后台运行。这种方式下,当前ssh窗口不会被锁定。当窗口关闭时,程序退出。
方式3:nohup命令的全称为"no hang up",用于不挂断运行命令。即使账户退出或终端关闭,程序仍然继续运行。
使用nohup命令执行任务时,缺省情况下,所有输出会被重定向到nohup.out文件中。除非另有指定输出位置。
方式4:在命令后使用">"符号,将输出重定向到指定文件。例如,"command > out.log"表示将command的输出内容输出到out.log文件中,而不显示在屏幕上。
后台运行的作业可通过"jobs"命令查看。该命令会列出所有后台执行的作业,并为每个作业分配一个编号。若需将某个作业调回前台控制,只需使用"fg + 编号"即可。
另外,若需要给文件赋予可执行权限,可参考相关文档。