使用ftp把打包后的项目jar包上传到linux服务器的目录上(这里有两个文件,一个pengning.jar,一个配置文件application.yml)
打开终端,进入pengning.jar所在的目录
[root@campus /]#
[root@campus /]# cd /var/www/pengning
[root@campus pengning]# ls
application.yml nohup.out pengning.jar
[root@campus pengning]#
运行JAR程序 ,即可启动项目后端程序。
java -jar pengning.jar
使用这种方法,当退出或关闭shell时,程序就会停止掉
如果想要后台运行,可执行如下命令:
[root@campus pengning]# java -jar pengning.jar &
在当前会话进程中开启一个子进程来运行程序,这个子进程会随着会话进程的结束而结束。这种情况适合短时间测试用。
要想后台运行,并且关闭shell后不会中断,可以使用以下命令
[root@campus pengning]# nohup java -jar pengning.jar &
nohup是no hangup的缩写,hangup (挂断),终端退出时会发送 hangup 信号来通知其关闭所有子进程。no nangup就是即使终端关闭,也不结束子进程。
上面使用nohup的命令,会自动在同级目录上生成nohup.out的日志,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。
如果我想日志保存到其它位置,可以使用">filename 2>&1"来更改缺省的重定向文件名。
[root@campus pengning]# nohup java -jar pengning.jar >/home/temp.out 2>&1 &
这里相当于将日志保存在/home/temp.out的文件中。
上面的2 和 1 的意思如下:
0 标准输入(一般是键盘)
1 标准输出(一般是显示屏,是用户终端控制台)
2 标准错误(错误信息输出)
有一些时候,日志积累会非常大,我们不想保存日志,则可以使用下面命令
[root@campus pengning]# nohup java -jar pengning.jar >/dev/null 2>&1 &
这里/dev/null是"黑洞"文件,相当于日志就不保存了。
上面两条命令暂时还未测试。
linux防火墙放行
这里以80端口为例:
[root@campus ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@campus ~]# firewall-cmd --reload
success
如果需要在外网访问,那需要在路由器或硬件防火墙那里做相应地址转换和放行。
测试 http://localhost:80/penging 访问项目欢迎页运行地址
显示出welcome to penging project! 即访问成功
或者使用下面命令查看和测试端口。
[root@campus ~]#
[root@campus ~]# netstat -ntlp //查看端口
[root@campus ~]# wget 127.0.0.1:80/pengning #模拟http访问地址
如何在linux上关闭已经打开的jar程序?
按照如果操作获取PID,然后将其停止
[root@campus ~]# ps -ef | grep java
root 11316 11174 0 14:49 pts/0 00:00:22 java -jar pengning.jar
root 14444 11384 0 15:38 pts/1 00:00:00 grep --color=auto java
[root@campus ~]# kill -15 11316
[root@campus ~]#
[root@campus ~]#
[root@campus ~]# ps -ef | grep java
root 14512 11384 0 15:39 pts/1 00:00:00 grep --color=auto java
[root@campus ~]#
参数说明:
-9 表示强制关闭程序 不建议使用 可能导致数据不正确 不建议使用
-15 表示拒绝新线程(任务)创建 当前正在运行的线程执行完之后再关闭程序 建议使用
《CentOS开机自动运行jar程序实现》