1. 程式人生 > >linux centos7上vue專案釋出成服務,自定義啟動停止指令碼

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      #停止服務