在Linux系统下运行JAR包的方式有四种
方式一
java -jar XXX.jar
这种方式运行特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
那如何让窗口不锁定?
方式二
java -jar XXX.jar &
** &代表在后台运行。
特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
继续改进,如何让窗口关闭时,程序仍然运行 **
方式三
nohup java -jar XXX.jar &
** nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。 **
方式四
nohup java -jar XXX.jar >temp.txt &
nohup java -jar demo.jar >demo.log 2>&1 &
** 解释下 >temp.txt
command >out.file
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。 **
nohup 表示程序不被挂起
java -jar 表示运行jar包,这里也可以执行其他命令,比如python xxx.py
demo.jar 表示要运行的jar包
demo.log 表示将控制台输出数据重定向到demo.log,不写的话默认输出到nohup.log
2>&1 表示将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr)
& 表示在后台运行程序
如何结束进程
#ps -aux|grep java: 查看所有运行的java程序
kill -9 1643 :结束ID为1643的程序
没有输出任何信息则说明顺利关闭了程序
``
可通过jobs命令查看后台运行任务
jobs
那么就会列出所有后台执行的程序,并且每个程序前面都有个编号。
如果想将某个程序调回前台控制,只需要 fg + 编号即可。
fg 23