项目运行
查看是否存在 nohup
which noohup
vim ~/.bash_profile
文件生效:
source ~/.bash_profile
nohup --version
如果第一步就没有发现nohup,先安装,再配置
yum install coreutils
进入jar包所在路径,运行 nohup 命令
cd /root/www/wx/
nohup java -jar mall-0.0.1-SNAPSHOT.jar &
项目停止
这个jobs命令只能显示当前控制台创造的任务。反正在我这里,无法显示别人的后台任务,输入jobs没有任何反应。
[[email protected] wx]# jobs -l
[1]+ 17789 Running nohup java -jar **-0.0.1-SNAPSHOT.jar &
[[email protected] wx]#
[[email protected] ~]# jobs
[[email protected] ~]#
采用top或者ps aux命令。一般 如果后台是springboot,jar包,那么command名称为java。如果前端是nodejs打包,那么就是npm。
[[email protected]** wx]# top
top - 10:25:46 up 2 days, 11:37, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016164 total, 77816 free, 250932 used, 687416 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 605480 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17789 root 20 0 2330296 188956 13760 S 0.3 18.6 0:14.32 java
1 root 20 0 190736 3752 2512 S 0.0 0.4 0:02.57 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.67 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
6 root 20 0 0 0 0 S 0.0 0.0 0:00.52 kworker/u2:0
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root 20 0 0 0 0 S 0.0 0.0 0:04.79 rcu_sched
找到PID,使用 kill -9 pid,杀死即可。项目停止运行。
[[email protected]**~]# kill -9 17789
Linux 启动停止SpringBoot jar 程序部署Shell 脚本
#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=common.jar
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_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 "${APP_NAME} is already running. pid=${pid} ."
else
nohup java -jar $APP_NAME > /dev/null 2>&1 &
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac