You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Ubuntu虚拟机上的GitHub Actions自托管运行器持续运行?

Ubuntu 上 GitHub Actions 自托管运行器持续运行的最佳实践

方法1:通过 systemd 管理运行器(推荐)

这是最稳定的生产级方案,能让运行器以系统服务形式后台运行,支持开机自启、异常自动重启,完全不受终端连接状态影响。

  1. 创建 systemd 服务配置文件
sudo nano /etc/systemd/system/github-runner.service
  1. 将以下内容写入文件,注意替换/path/to/your/runner/directory为你实际的运行器安装目录:
[Unit]
Description=GitHub Actions Self-hosted Runner
After=network.target

[Service]
User=root
Environment="RUNNER_ALLOW_RUNASROOT=1"
WorkingDirectory=/path/to/your/runner/directory
ExecStart=/path/to/your/runner/directory/run.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
  1. 重载 systemd 配置并启动服务
sudo systemctl daemon-reload
sudo systemctl start github-runner
# 设置开机自启
sudo systemctl enable github-runner
  1. 查看运行状态
sudo systemctl status github-runner

方法2:使用 nohup 后台运行(临时场景适用)

适合临时测试或短时间运行,无需额外配置,但进程异常退出后不会自动重启。

进入运行器安装目录,执行以下命令:

RUNNER_ALLOW_RUNASROOT=1 nohup ./run.sh > runner.log 2>&1 &
  • nohup 让进程脱离终端控制,断开连接后不会终止
  • > runner.log 2>&1 将所有输出重定向到runner.log文件,方便后续查看

查看运行中的进程:

ps aux | grep run.sh

停止运行器:

kill <进程ID>

方法3:使用 tmux/screen 保持会话(交互场景适用)

适合需要偶尔查看运行器实时输出、进行交互操作的场景,断开连接后会话仍会在后台保持。

以 tmux 为例:

  1. 安装 tmux
sudo apt update && sudo apt install tmux -y
  1. 创建新会话并启动运行器
tmux new -s github-runner
# 在会话内执行启动命令
RUNNER_ALLOW_RUNASROOT=1 ./run.sh
  1. 脱离会话(保持后台运行)
    按下快捷键 Ctrl+B 后松开,再按 D,即可回到终端主界面,此时断开连接不会影响运行器。

  2. 恢复会话(重新连接虚拟机后)

tmux attach -t github-runner
  1. 关闭会话
    进入会话后,按下 Ctrl+B 再按 &,或直接执行:
tmux kill-session -t github-runner

方案选择建议

  • 生产环境长期运行:优先用 systemd 服务,稳定性最高,维护成本低
  • 临时测试:用 nohup 快速启动
  • 需要交互/实时查看输出:用 tmux/screen

内容的提问来源于stack exchange,提问作者Shikha Priyedarshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 02:36:06