java 不退出_Java项目不挂断运行,即当账户退出或终端关闭时,程序仍然运行,并附上执行脚本...

把打包好的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值