(本博文的方法对于阿里云和腾讯与服务器都适用 )
场景:
部署一个后端程序(climate-0.0.1-SNAPSHOT.jar)到我腾讯云的服务器上,常规启动命令如下:
1 | java -jar climate-0.0.1-SNAPSHOT.jar |
上图表示项目部署成功,便可以在浏览器上进行访问
但是关闭终端后,就不能访问了,也就达不到上线的效果。
而我们想项目程序在关闭退出终端后,也一样继续运行,
这时候需要使用 nohup 命令启动(该命令可以在你退出帐户/关闭终端之后继续运行相应的进程)
输入如下命令:
1 | nohup java -jar climate-0.0.1-SNAPSHOT.jar |
但是会报错(表示:执行nohup命令的时候,经常会没有写入权限的错误)
1、原因
是因为使用 nohup 会产生日志文件,默认写入到 nohup.out
2、解决
将 nohup 的日志输出到 /dev/null,这个目录会让所有到它这的信息自动消失
1 | nohup java -jar climate-0.0.1-SNAPSHOT.jar > /dev/null 2> /dev/null & |
其它解决方法:
就是在末尾直接加一个&就就能够直接在后台运行
1 | nohup java -jar climate-0.0.1-SNAPSHOT.jar & |
停止进程
如果想停止进程运行的话,可通过命令(kill -9 进程号PID)进程号来杀死
另外也可以使用 ps -def | grep “进程名” 命令来查找PID。
找到 PID 后,就可以使用 kill PID 来删除。
1 | kill -9 进程号PID |
如果发现启动时,查看日志发现端口号被占了
用 lsof -i:[端口号] 查看使用某端口的进程
1 | lsof -i:[端口号] |
然后使用kill杀掉进城后再启动
终止后台运行的进程
1 | kill -9 进程号PID |
比如:发现 6868 端口被占用了