idea打包springboot项目到服务器上运行
1.pom增加build,maven-->lifecycle-->package打成jar包,打好的jar包在target
2.使用命令或者xftp上传到服务器
3.直接启动-----启动好了之后就不能动了,不能ctrl+c退出,也不能关闭终端,一旦退出或者关闭终端,程序就会关闭。
java -jar xxx.jar
4.后台启动 --&符号就代表后台启动,这种启动方式日志仍然输入到终端控制台中,但是ctrl+c不会关闭程序,退出终端,程序会关闭
java -jar demo-0.0.1-SNAPSHOT.jar &
5.nohup启动 3种方式(指定日志文件,记录日志级别区别)
1.nohup java -jar demo-0.0.1-SNAPSHOT.jar &
这种方式会生成一个nohup.out来记录日志,所以日志不会直接输出到终端,而且这种方式启动,ctrl+c或者关闭终端,程 序都不会结束
2.nohup java -jar demo-0.0.1-SNAPSHOT.jar >output.log &
nohup启动的日志输出文件nohup.out是自动生成的,但是我们更希望自己指定日志输出文件
3.nohup java -jar demo-0.0.1-SNAPSHOT.jar > output.log 2>&1&
Linux下1表示标准输出,2表示错误输出
“>logs.log”表示标准输出重定向到output.log中,默认是标准输出,省略1,不省略的话可以写成1>output.log;
"2>&1" 错误输出也重定向到output.log中,其中&1表示前面的output.log文件,不加&,写成2>1的话就表示把错误输出 到1这个文件而不是前面标准输出的文件output.log,所以&要加上;
最后一个&表示以后台方式启动程序。这种方式启动,ctrl+c或者关闭终端,程序都不会结束。
6.以系统服务启动(更推荐)
1.创建自定义系统服务,在/etc/systemd/system目录下创建一个xxx.service文件,xxx就是自定义的服务名称。写下以下内容
[Unit]
Description=demo
After=syslog.target
[Service]
ExecStart=/usr/local/jdk1.8.0_251/bin/java -jar /usr/jar/demo-0.0.1-SNAPSHOT.jar
[Install]
WantedBy=multi-user.target
内容解释:
[Unit]说明
Description:服务的描述
After:设置在某个服务启动后启动
[Service]服务参数配置
ExecStart服务运行执行的命令
[Install]服务安装的相关设置,可设置为多用户
根据需要,自己修改description和ExecStart的内容即可(ExecStart后面的java命令需要全路径,写java -jar会启动不了)
2.启动系统服务
systemctl start demo(服务名)
系统服务相关的几个命令:
systemctl start xxx #启动服务
systemctl status xxx #查看服务状态
systemctl stop xxx #停止服务
systemctl enable xxx #设置服务开机自启动
systemctl disable xxx #取消服务开机自启动
systemctl restart xxx #重启服务
3.关闭jar包程序
如果是直接启动,ctrl+c就可以直接关闭
如果是后台启动,关闭终端就可以关闭程序
如果是nohup启动,可以用kill进程的方式结束进程:
查看java进程: ps -ef|grep java
使用kill -9 4106(进程号)
4. 如果是以系统服务方式启动的jar包,那可以直接用systemctl stop xxx直接关闭。