部署java程序到服务器上(普通部署&脚本文件部署)

  • 前言

需要部署多个jar包到服务器上,使用xshell部署

  • 打开服务器
  • 打开放置jar包的文件夹(根据自身情况)
cd /usr/local/src
  • 查看jar包是否在运行(name放置jar包的部分名字即可)
ps -ef|grep name

ps命令的输出格式

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  • 然后杀掉对应的pid
kill pid
  • 检查是否杀掉
ps -ef|grep name
  • 将你的jar包放置到该文件夹下,然后启动(如果原有直接复制上去覆盖)使用nohup命令。

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

nohup 一定要在指定目录下,不然找不到需要启动的jar包,你在a文件夹下肯定启动不了b文件夹里面的程序。

语法格式

nohup Command [ Arg … ] [ & ]

一般使用 (第一个xms512是最小分配内存,第二个是最大分配内存)

nohup java -jar -Xms512M -Xmx1024M name.jar &
  • ls 命令用于显示指定工作目录下之内容

参数 :

-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)

-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

-r 将文件以相反次序显示(原定依英文字母次序)

扫描二维码关注公众号,回复: 14963950 查看本文章

-t 将文件依建立时间之先后次序列出

-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)

-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”

-R 若目录下有文件,则以下之文件亦皆依序列出

  • cat nohup.out 显示下nohup.out里面的内容,也是之前nohup的记录,看下是否启动成功了
  • pwd 可以显示当前路径

通过.sh文件快捷部署jar包到服务器上

每次都要杀死pid和启动服务器,未免太过麻烦,那直接写一个脚本文件,每次运行这个文件就行,就能便利许多。

  • 在合适的文件夹下创建脚本文件
vim start.sh

内容如下(三个jar包分别放置在a1、a2、a3文件夹下)

睡眠和输出提示可以根据需要删除和添加,该start.sh就完成了多个进程删除,再部署的功能。

array=(name1.jar name2.jar name3.jar)
for i in ${array[@]}
do
        PID=$(ps -ef | grep $i | grep -v grep | awk '{ print $2 }')
        if [ -z "$PID" ]
        then
                echo Application is already stopped
        else
                echo kill $PID
                kill -9  $PID
        fi
done

cd /usr/local/src/jars/a1
nohup java -jar -Xms512M -Xmx1024M name1.jar &
sleep 10s
cd /usr/local/src/jars/a2
nohup java -jar -Xms512M -Xmx1024M name2.jar &
sleep 10s
cd /usr/local/src/jars/a3
nohup java -jar -Xms512M -Xmx1024M name3.jar &
echo "finish"
  • 授予sh文件权限
chmod 777 start.sh
  • 执行sh文件

方法一 本身目录下运行

进入 cd /home/workwen文件下, 执行

./start.sh

命令会在当前目录下创建一个“test”目录。

方法二 绝对路劲运行, 执行

/home/work/start.sh

方法三 本身目录下运行

sh start.sh

猜你喜欢

转载自blog.csdn.net/qq_43382350/article/details/125008727
今日推荐