繁体   English   中英

如何在 Gitlab 作业的后台运行 gradle 应用程序(nohup 在 gitlab 中不起作用)

[英]How can I run gradle apps in background in Gitlab job (nohup is not working in gitlab)

我想运行几个 gradle 应用程序,它们将作为后台进程运行大约 5 分钟(在调用 gradle 应用程序后将运行更多命令,然后工作将完成)。 他们使用 nohup 在我的 ubuntu 机器上执行得很好:

nohup gradle app1 > nohup1.out 2>&1 &
nohup gradle app2 > nohup2.out 2>&1 &
...

运行这些命令不需要按中断按钮或回车,因此我可以在后台连续运行多个 gradle 应用程序并开始与它们交互。

虽然今天我了解到 Gitlab 运行器取消了所有子进程,从而使 nohup 在 Gitlab CI 作业中无用。

是否有解决方法,以便我可以在后台运行 Gitlab 作业中的多个 gradle 作业? 我尝试使用工具at但它没有像nohup那样带来功能。

要后台作业,您不需要使用nohup ,您可以简单地在命令末尾使用&来“后台”它。

举个简单的例子:

test_job:
  image: python:3.9-slim
  script:
    - python -m http.server  & # Start a server on port 8000 in the background
    - apt update && apt install -y curl
    - echo "contacting background server..."
    - curl http://localhost:8000

这有效。 在最后一个script:步骤运行后,该作业将退出(也关闭后台作业)。

在尝试访问它们之前,请确保为您的应用程序提供足够的启动时间。

暂无
暂无

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

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