[英]Permission denied error when executing shell script via GitLab CI/CD
[英]Write process id to file in Gitlab CI/CD script
在使用 Gitlab CI/CD 作業構建前端和后端后,我嘗試在服務器上復制可執行文件並重新運行后端服務器。
預期行為:使用文件 /var/run/backend.pid 中的 pid 殺死進程,然后在后台運行新進程並將新 pid 寫入同一文件。
實際行為:一切都很好,但文件 /var/run/backend.pid 為空(實際上只有換行符)
script:
- ssh root@draft.<...project name...>.tech "pkill -F /var/run/<...project name...>-backend.pid;rm /var/run/<...project name...>-backend.pid;/var/www/<...project name...>/backend/bin/backend > /var/log/<...project name...>-backend.log 2>&1 & disown;echo $! > /var/run/<...project name...>-backend.pid"
請幫助我進行部署。 我不知道有什么問題,因為本地相同的命令運行良好。
通過僅運行命令的第一部分來嘗試檢查文件是否首先創建:
ssh root@draft.<...project name...>.tech "pkill -F /var/run/<...project name...>-backend.pid"
這將驗證:
ssh root@draft.<...project name...>.tech
的帳戶運行pkill
命令確實會生成一個非空的backend.pid
文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.