方式一
Java -jar jar包名.jar
特点:当前ssh窗口被锁定,但是当我们关闭窗口或Ctrl + C打断程序运行时,程序就会退出。
改进==》:
方式二
java -jar jar包名.jar &
&代表在后台运行。
特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序还是会中止运行。
继续改进==》:
方式三
nohup java -jar jar包名.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,默认情况下该程序的所有输出被重定向保存到nohup.out的文件中,除非另外指定了输出文件。其实这已经达到了我们的目的。但还可以更自主。
方式四
nohup java -jar shareniu.jar >temp.txt &
和上一种的区别在于,多了>temp.txt。也就是指定输出log的文件。
可通过jobs命令查看后台运行任务
(jobs是查看当前后台作业(进程),是获取本次bash进程下子进程的后台作业。
当本次终端退出后,后台作业变成孤儿进程,孤儿进程由系统父进程接管。
当再次连接终端时,原作业与当前终端,不存在关系父子关系,故看不到进程。
但是原作业,会在系统中一致运行,直到完成或被停止。所以终端退出后,jobs看不到的原因了。jobs、fg、netstat -nlp |grep :操作好像都只能针对当前连接开启的进程,未验证)
jobs
就会列出所有后台执行的作业,并且每个进程前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 进程编号即可。
fg 进程id
查看某端口占用的线程的pid
netstat -nlp |grep :进程id
如果忘了进程号,可以通过如下命令来查看当前运行的jar包程序进程号
ps -ef|grep jar包名.jar
或者 ps -aux | grep java
//关闭进程
kill -s 9 进程id



