linux centos7上vue项目发布成服务,自定义启动停止脚本

1.在opt下面创建目录  vue-project

cd /opt

mkdir vue-project

2.建立三个文件  catalina.sh(项目总体脚本)    startup.sh(项目启动脚本)    shutdown.sh(项目停止脚本)

vim catalina.sh

#!/bin/bash
#author lawliet

if [ "$1" = "start" ];then
  path="/home/huadi/Webproject/vueweb"
  echo $path
  cd $path
  chmod 777 /home/huadi/Webproject/vueweb/node_modules/.bin/webpack-dev-server
  npm run dev
elif [ "$1" = "stop" ];then
  echo "service stop"
  input1="dev-server.js"
  PIDS=$(ps -ef | grep $input1|awk '{print $2}')
  echo $PIDS
  for i in $PIDS
  do
    echo $i
    kill -9 $i
  done
  echo "vueproject stop"
fi

注:如果参数是start ,上面代码中path即vue项目的根目录的路径,启动之前给vue的启动目录附加权限(chmod);

       如果参数是stop,上面代码通过"ps -ef | grep 名称"vue查询相应的后台进程,再通过awk 筛选出pid,接着遍历pid逐个杀死            (kill -9 pid)

vim startup.sh

#!/bin/bash
#author lawliet
nohup /opt/vue-project/catalina.sh start &

注:nohup command & 

nohup 是不挂断的运行命令,& 是在后台运行;一般两个一起使用,可以将服务在后台运行,且关闭当前shell窗口,服务也不会停止

vim shutdown.sh

#!/bin/sh
#author lawliet
exec /opt/vue-project/catalina.sh stop

3.建立系统服务

vim etc/systemd/system/vueproject.service

[unit]
Description=Vue Web Application Container
After=network.target
[Service]
Type=forking
ExecStart=/opt/vue-project/startup.sh
ExecStop=/opt/vue-project/shutdown.sh
[Install]
WantedBy=multi-user.target

4.将服务设置为开机自启

systemctl enable vueproject

5.以上操作做完服务就算发布成功了,通过命令启动

systemctl start vueproject      #启动服务

systemctl status vueproject      #查看服务状态

systemctl stop vueproject      #停止服务

猜你喜欢

转载自blog.csdn.net/lawliet1217/article/details/84560545