linux centos7上vue專案釋出成服務,自定義啟動停止指令碼
阿新 • • 發佈:2018-12-19
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 #停止服務