자체 호스팅 러너 애플리케이션을 서비스로 구성하기

자체 호스팅 러너 애플리케이션을 서비스로 구성하기

자체 호스팅 러너 애플리케이션을 서비스로 구성해 머신이 시작될 때 러너 애플리케이션이 자동으로 시작되게 할 수 있어요. 운영 체제에 따라 svc.sh 스크립트나 PowerShell, Windows 서비스를 사용해 설치·관리할 수 있어요.

출처: 문서

본문

Linux 및 macOS:

Note

자체 호스팅 러너 애플리케이션을 서비스로 구성하려면 먼저 GitHub에 러너를 추가해야 해요. 자세한 내용은 자체 호스팅 러너 추가하기를 참고하세요.

러너 머신에서 자체 호스팅 러너 애플리케이션을 설치한 디렉토리에 셸을 열어요. 아래 명령을 사용해 자체 호스팅 러너 서비스를 설치하고 관리해요.

Windows:

Note

Windows에서 자체 호스팅 러너 애플리케이션을 서비스로 구성하는 것은 애플리케이션 구성 과정의 일부예요. 자체 호스팅 러너 애플리케이션을 이미 구성했지만 서비스로 구성하도록 선택하지 않았다면, GitHub에서 러너를 제거하고 애플리케이션을 다시 구성해야 해요. 애플리케이션을 다시 구성할 때 서비스로 구성하는 옵션을 선택해요.

자세한 내용은 자체 호스팅 러너 제거하기자체 호스팅 러너 추가하기를 참고하세요.

Windows에서 러너 서비스는 Services 애플리케이션에서 관리하거나, PowerShell을 사용해 아래 명령을 실행할 수 있어요.

서비스 설치하기

  1. 자체 호스팅 러너 애플리케이션이 현재 실행 중이라면 중지해요.

  2. 다음 명령으로 서비스를 설치해요:

    Linux:

    sudo ./svc.sh install
    

    macOS:

    ./svc.sh install
    
  3. Linux: 선택적으로, 이 명령은 다른 사용자로 서비스를 설치하기 위해 선택적 user 인자를 받을 수 있어요.

    ./svc.sh install USERNAME
    

서비스 시작하기

다음 명령으로 서비스를 시작해요:

Linux:

sudo ./svc.sh start

Note

needrestart가 활성화된 Debian 기반 Linux 시스템(Debian이나 Ubuntu 등)에서는, 워크플로 작업 중에 needrestart가 러너 서비스를 다시 시작하지 않도록 구성할 수 있어요. 다음 명령을 실행하세요:

echo '$nrconf{override_rc}{qr(^actions\.runner\..+\.service$)} = 0;' | sudo tee /etc/needrestart/conf.d/actions_runner_services.conf

Windows:

Start-Service "actions.runner.*"

macOS:

./svc.sh start

서비스 상태 확인하기

다음 명령으로 서비스 상태를 확인해요:

Linux:

sudo ./svc.sh status

Windows:

Get-Service "actions.runner.*"

macOS:

./svc.sh status

자체 호스팅 러너의 상태를 보는 방법에 대한 자세한 내용은 자체 호스팅 러너 모니터링 및 문제 해결을 참고하세요.

서비스 중지하기

다음 명령으로 서비스를 중지해요:

Linux:

sudo ./svc.sh stop

Windows:

Stop-Service "actions.runner.*"

macOS:

./svc.sh stop

서비스 제거하기

  1. 현재 실행 중이라면 서비스를 중지해요.

  2. 다음 명령으로 서비스를 제거해요:

    Linux:

    sudo ./svc.sh uninstall
    

    Windows:

    Remove-Service "actions.runner.*"
    

    macOS:

    ./svc.sh uninstall
    

(Linux) 자체 호스팅 러너 서비스 커스터마이징하기

위의 기본 systemd 서비스 구성을 사용하고 싶지 않다면, 커스터마이즈된 서비스를 만들거나 선호하는 서비스 메커니즘을 사용할 수 있어요. 참고로 actions-runner/bin/actions.runner.service.templateserviced 템플릿을 사용하는 것을 고려해요. 커스터마이즈된 서비스를 사용한다면 자체 호스팅 러너 서비스는 항상 runsvc.sh 엔트리 포인트로 호출되어야 해요.

(macOS) 자체 호스팅 러너 서비스 커스터마이징하기

위의 기본 launchd 서비스 구성을 사용하고 싶지 않다면, 커스터마이즈된 서비스를 만들거나 선호하는 서비스 메커니즘을 사용할 수 있어요. 참고로 actions-runner/bin/actions.runner.plist.templateplist 템플릿을 사용하는 것을 고려해요. 커스터마이즈된 서비스를 사용한다면 자체 호스팅 러너 서비스는 항상 runsvc.sh 엔트리 포인트로 호출되어야 해요.