把打包好的jar包上传服务器以后,直接运行java -jar+文件名 命令即可以完成启动。
若需要在公网上如何不挂断开启程序,可以使用nohup java -jar +文件名 &命令,其中nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行;&代表在后台运行。
若想关闭程序,可以使用netstat –pan |grep 端口号命令查看端口占用情况,
使用kill pid命令终止进程,关闭程序。
项目在公网运行起来以后,需要在公网服务器开通项目端口号,即可通过其他电脑浏览器访问接口。
Linux 运行jar包命令如下:
方式一
java -jar xxx.jar
当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
那如何让窗口不锁定?
方式二
java -jar xxx.jar &
&代表在后台运行。
当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
方式三
nohup Java -jar xxx.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
方式四
nohup java -jar xxx.jar >xxx.txt &
>xxx.txt是将command的输出重定向到txt文件
可通过jobs命令查看后台运行任务
jobs
那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
如果想将某个作业调回前台控制,只需要 fg + 编号即可。
fg 23
查看某端口占用的线程的pid
netstat -nlp |grep : 8080
整理好的脚本如下,用的时候直接替换名称即可,例如启动使用 ./xxx.sh start :
#!/bin/sh
WEB_APP_NAME=xxx-0.0.1-SNAPSHOT
JAR_NAME=${WEB_APP_NAME}\.jar
PID=${WEB_APP_NAME}\.pid
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep ${JAR_NAME}|grep -v grep|awk '{print $2}'`
#如果不存在返回1,存在返回0
if [[ -z "${pid}" ]]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [[ $? -eq "0" ]]; then
echo ">>>${JAR_NAME}is already running PID=${pid}<<
else
nohup java -jar ${JAR_NAME} >/dev/null 2>&1 &
echo $! > ${PID}
echo ">>> start${JAR_NAME}successed PID=$!<<
fi
}
#停止方法
stop(){
pid_file=$(cat ${PID})
if [[ -z ${pid_file} ]];then
echo ">>>${JAR_NAME}pid file is not exist <<
else
echo ">>>${JAR_NAME}PID =${pid_file}begin kill${pid_file}<<
kill ${pid_file}
rm -rf ${PID}
sleep 2
fi
is_exist
if [[ $? -eq "0" ]]; then
echo ">>>${JAR_NAME}exist PID =${pid}begin kill -9${pid}<<
kill -9 ${pid}
sleep 2
echo ">>>${JAR_NAME}process stopped <<
else
echo ">>>${JAR_NAME}is not running <<
fi
}
#输出运行状态
status(){
is_exist
if [[ $? -eq "0" ]]; then
echo ">>>${JAR_NAME}is running PID is${pid}<<
else
echo ">>>${JAR_NAME}is not running <<
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
exit 0