在 linux 服务器上运行 Jar 文件时通常的方法是执行执行命令:
$ java -jar test.jar
这种方式特点是 ssh 窗口关闭时,程序中止运行. 或者是运行时没法切出去执行其他任务。
使用nohup 放到后台
nohup java -jar test.jar &
# nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
# 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中
# 除非另外指定了输出文件。
nohup java -jar test.jar >temp.txt & # 制定日志输出文件
查看、切换后台程序
jobs # 那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
fg 2 # 如果想将某个作业调回前台控制,只需要 fg + 编号即可。
关闭shell后程序中断
- 不能点终端的叉,只能使用exit退出
exit #logout
- 使用disown断开程序连接
nohup ./MISS.GO.PayNotifyService & disown # 直接使用disown
## 或者手动disown
nohup ./MISS.GO.PayNotifyService &
jobs -l # 查询任务编号
disown [查到的程序编号] # 手动断开
查看某端口占用的线程的 pid
netstat -nlp |grep :8080