[英]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.