繁体   English   中英

将进程 ID 写入 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"

这将验证:

  • gitlab-ci 使用能够执行ssh root@draft.<...project name...>.tech的帐户运行
  • 并且pkill命令确实会生成一个非空的backend.pid文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM