问题描述

开发个人博客时,将springboot打成jar包放到linux服务器上运行,远程连接运行java -jar xxx.jar命令可以正常启动后端,但是关闭ssh后程序自动关闭。百度后发现java -jar命令会随ssh窗口关闭而结束,此时需要nohup命令使java -jar在后台运行。

解决方案

nohup 即no hung up,指程序不被挂起,当ssh窗口关闭后程序会继续运行,但不能在控制台输出数据。

语法:

nohup Command [ Arg … ] [ & ]

示例:nohup java -jar demo.jar >demo.log 2>&1 &

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程序
ps -aux|grep java
其中1643就是后台程序的ID
kill -9 1643: 结束ID为1643的程序
没有输出任何信息则说明顺利关闭了程序

Logo

更多推荐