服务器运行JAVA程序
身为一个运维人员和后端开发人员,学会在linux服务器上部署自己写的后端项目是必要的,本篇文章将快速介绍如何在linux服务器上将java程序以jar包形式部署运行。
首先需要能够远程连接上自己的linux服务器,这里推荐用Xshell+Xftp或者finalshell、Mobaxterm对服务器进行文件管理和控制台操作。在服务器上安装相应的环境——对应版本jdk、数据库、nohup命令等……新建数据库远程连接,导入后端运行需要的数据库。
注意(若部署失败,请回来反复检查以下几点):
- 将服务器的对应端口号打开且没被占用,如数据库的3306,以及java程序需要的端口,例:8081……
- 数据库是否导入成功。
- Jdk环境是否有效。
将java项目打包成jar包,传输到linux服务器上(SSH连接工具),然后在jar包所在的文件夹下执行以下命令即可:
主要代码:
nohup java -jar 项目名.jar &
ps -aux | grep 项目名
kill -9 进程id
详解:
nohup java -jar 项目名.jar & ——运行java进程
需要在项目部署的文件夹中使用该命令行,挂载jar项目,会自动生成一个日志文件(.out,该文件在jar包相同的文件夹内),在里面可看到后端的各种报错信息等(相当于idea的运行结果);
如果运行成功并顺利,你可以在进程中看到运行的该进程。
ps -aux | grep 项目名 ——查看linux进程
例:ps -aux | grep java
查看系统的进程,看目标java项目是否在运行。
kill 进程id ——杀死对应进程
例:kill 13245 或 kill 13245 -9
杀死进程,有些进程可能占用端口或者已经无用但没有停止运行,就需要杀死才能跑所需项目。
关于kill:
kill命令用于终止Linux进程,默认情况下,如果不指定信号,kill 等价于kill -15。
kill -15执行时,系统向对应的程序发送SIGTERM(15)信号,该信号是可以被执行、阻塞和忽略的,所以应用程序接收到信号后,可以做一些准备工作,再进行程序终止。
有的时候,kill -15无法终止程序,因为他可能被忽略,这时候可以使用kill -9,系统会发出SIGKILL(9)信号,该信号不允许忽略和阻塞,所以应用程序会立即终止。
这也会带来很多副作用,如数据丢失等,所以,在非必要时,不要使用kill -9命令,尤其是那些web应用、提供RPC服务、执行定时任务、包含长事务等应用中,因为kill -9没给spring容器、tomcat服务器、dubbo服务、流程引擎、状态机等足够的时间进行收尾。
Tips:关于windows项目→linux服务器
- 目录分割符, Windows 是 \ ,Linux 是 /。
- 文件名,Windows可为中文,且不区分大小写,但是linux系统区分。
- 编码,Windows 默认 是GBK, Linux 是 UTF8。
参考链接:
https://blog.youkuaiyun.com/Allenzyg/article/details/106139638#