我需要一一運行許多命令來啟動我的專案,而不是我試圖將命令放在 shell 腳本檔案中
server.sh
#!/bin/bash
sudo systemctl start elasticsearch.service
sudo systemctl start kibana.service
cd fastapi
uvicorn main:app --reload --port 8000
cd ..
cd reactjs
npm i
npm start
cd ..
cd node
npm i
npm run dev
這些是我把它放在一個.sh
檔案中的命令,現在問題是在uvicorn main:app --reload --port 8000
這個命令 sh 檔案未能執行其余命令之后。
如何使用.sh
檔案或yaml
檔案解決此問題
uj5u.com熱心網友回復:
您必須在后臺運行代碼中的三個主要腳本:
uvicorn main:app --reload --port 8000 &
npm start &
npm run dev &
這&
是在后臺運行該命令的命令之后使用的,因此腳本不會在第一個命令(avicorn)中停止,它將跟隨代碼。
并且由于這些命令會在終端中生成一個輸出(如果你從它運行它們),輸出可能會混淆,所以我建議將輸出重定向到你在后臺運行的每個命令的檔案。
你的代碼可能是這樣的:
#!/bin/bash
sudo systemctl start elasticsearch.service
sudo systemctl start kibana.service
cd fastapi
uvicorn main:app --reload --port 8000 > uvicorn.log &
cd ../reactjs
npm i
npm start > npmstart.log &
cd ../node
npm i
npm run dev > npmdev.log &
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491928.html
下一篇:如何在Linux上檢測塊設備?