InfoGrab DocsInfoGrab Docs

GitLab Runner의 시스템 서비스

요약

GitLab Runner는 Go service 라이브러리를 사용하여 기반 OS를 감지하고 init 시스템에 기반하여 서비스 파일을 설치합니다. service 패키지는 프로그램을 서비스(데몬)로 설치, 제거, 시작, 중지 및 실행합니다.

GitLab Runner는 Go service 라이브러리를 사용하여 기반 OS를 감지하고 init 시스템에 기반하여 서비스 파일을 설치합니다.

Note

service 패키지는 프로그램을 서비스(데몬)로 설치, 제거, 시작, 중지 및 실행합니다. Windows XP+, Linux(systemd, Upstart, System V) 및 macOS(launchd)가 지원됩니다.

GitLab Runner가 설치되면 서비스 파일이 자동으로 생성됩니다:

  • systemd: /etc/systemd/system/gitlab-runner.service
  • Upstart: /etc/init/gitlab-runner

사용자 정의 환경 변수 설정#

GitLab Runner를 사용자 정의 환경 변수와 함께 실행할 수 있습니다. 예를 들어, 러너의 환경에 GOOGLE_APPLICATION_CREDENTIALS를 정의하려는 경우입니다. 이 작업은 러너가 실행하는 모든 작업에 자동으로 추가되는 변수를 정의하는 environment 구성 설정과는 다릅니다.

systemd 사용자 정의#

systemd를 사용하는 러너의 경우, 내보낼 각 변수에 대해 Environment=key=value 줄을 사용하여 /etc/systemd/system/gitlab-runner.service.d/env.conf를 생성합니다.

예시:

[Service]
Environment=GOOGLE_APPLICATION_CREDENTIALS=/etc/gitlab-runner/gce-credentials.json

그런 다음 구성을 다시 로드합니다:

systemctl daemon-reload
systemctl restart gitlab-runner.service

Upstart 사용자 정의#

Upstart를 사용하는 러너의 경우, /etc/init/gitlab-runner.override를 생성하고 원하는 변수를 내보냅니다.

예시:

export GOOGLE_APPLICATION_CREDENTIALS="/etc/gitlab-runner/gce-credentials.json"

적용하려면 러너를 재시작합니다.

기본 중지 동작 재정의#

경우에 따라 서비스의 기본 동작을 재정의해야 할 수 있습니다.

예를 들어, GitLab Runner를 업그레이드할 때는 실행 중인 모든 작업이 완료될 때까지 정상적으로 중지해야 합니다. 그러나 systemd, Upstart 또는 다른 서비스는 알아채지 못한 채로 프로세스를 즉시 재시작할 수 있습니다.

따라서 GitLab Runner를 업그레이드할 때 설치 스크립트는 당시 새 작업을 처리하고 있었을 가능성이 있는 러너 프로세스를 종료하고 재시작합니다.

systemd 재정의#

systemd를 사용하는 러너의 경우, 다음 내용으로 /etc/systemd/system/gitlab-runner.service.d/kill.conf를 생성합니다:

[Service]
TimeoutStopSec=7200
KillSignal=SIGQUIT

이 두 설정을 systemd 유닛 구성에 추가한 후 러너를 중지할 수 있습니다. 러너가 중지된 후 systemd는 프로세스를 중지하기 위한 킬 시그널로 SIGQUIT를 사용합니다. 또한 중지 명령에 대해 2시간의 타임아웃이 설정됩니다. 이 타임아웃 전에 작업이 정상적으로 종료되지 않으면 systemd는 SIGKILL을 사용하여 프로세스를 종료합니다.

Upstart 재정의#

Upstart를 사용하는 러너의 경우, 다음 내용으로 /etc/init/gitlab-runner.override를 생성합니다:

kill signal SIGQUIT
kill timeout 7200

이 두 설정을 Upstart 유닛 구성에 추가한 후 러너를 중지할 수 있습니다. Upstart는 위의 systemd와 동일하게 동작합니다.

GitLab Runner의 시스템 서비스

GitLab v19.2
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

GitLab Runner는 Go service 라이브러리를 사용하여 기반 OS를 감지하고 init 시스템에 기반하여 서비스 파일을 설치합니다. service 패키지는 프로그램을 서비스(데몬)로 설치, 제거, 시작, 중지 및 실행합니다.

GitLab Runner는 Go service 라이브러리를 사용하여 기반 OS를 감지하고 init 시스템에 기반하여 서비스 파일을 설치합니다.

Note

service 패키지는 프로그램을 서비스(데몬)로 설치, 제거, 시작, 중지 및 실행합니다. Windows XP+, Linux(systemd, Upstart, System V) 및 macOS(launchd)가 지원됩니다.

GitLab Runner가 설치되면 서비스 파일이 자동으로 생성됩니다:

  • systemd: /etc/systemd/system/gitlab-runner.service
  • Upstart: /etc/init/gitlab-runner

사용자 정의 환경 변수 설정#

GitLab Runner를 사용자 정의 환경 변수와 함께 실행할 수 있습니다. 예를 들어, 러너의 환경에 GOOGLE_APPLICATION_CREDENTIALS를 정의하려는 경우입니다. 이 작업은 러너가 실행하는 모든 작업에 자동으로 추가되는 변수를 정의하는 environment 구성 설정과는 다릅니다.

systemd 사용자 정의#

systemd를 사용하는 러너의 경우, 내보낼 각 변수에 대해 Environment=key=value 줄을 사용하여 /etc/systemd/system/gitlab-runner.service.d/env.conf를 생성합니다.

예시:

[Service]
Environment=GOOGLE_APPLICATION_CREDENTIALS=/etc/gitlab-runner/gce-credentials.json

그런 다음 구성을 다시 로드합니다:

systemctl daemon-reload
systemctl restart gitlab-runner.service

Upstart 사용자 정의#

Upstart를 사용하는 러너의 경우, /etc/init/gitlab-runner.override를 생성하고 원하는 변수를 내보냅니다.

예시:

export GOOGLE_APPLICATION_CREDENTIALS="/etc/gitlab-runner/gce-credentials.json"

적용하려면 러너를 재시작합니다.

기본 중지 동작 재정의#

경우에 따라 서비스의 기본 동작을 재정의해야 할 수 있습니다.

예를 들어, GitLab Runner를 업그레이드할 때는 실행 중인 모든 작업이 완료될 때까지 정상적으로 중지해야 합니다. 그러나 systemd, Upstart 또는 다른 서비스는 알아채지 못한 채로 프로세스를 즉시 재시작할 수 있습니다.

따라서 GitLab Runner를 업그레이드할 때 설치 스크립트는 당시 새 작업을 처리하고 있었을 가능성이 있는 러너 프로세스를 종료하고 재시작합니다.

systemd 재정의#

systemd를 사용하는 러너의 경우, 다음 내용으로 /etc/systemd/system/gitlab-runner.service.d/kill.conf를 생성합니다:

[Service]
TimeoutStopSec=7200
KillSignal=SIGQUIT

이 두 설정을 systemd 유닛 구성에 추가한 후 러너를 중지할 수 있습니다. 러너가 중지된 후 systemd는 프로세스를 중지하기 위한 킬 시그널로 SIGQUIT를 사용합니다. 또한 중지 명령에 대해 2시간의 타임아웃이 설정됩니다. 이 타임아웃 전에 작업이 정상적으로 종료되지 않으면 systemd는 SIGKILL을 사용하여 프로세스를 종료합니다.

Upstart 재정의#

Upstart를 사용하는 러너의 경우, 다음 내용으로 /etc/init/gitlab-runner.override를 생성합니다:

kill signal SIGQUIT
kill timeout 7200

이 두 설정을 Upstart 유닛 구성에 추가한 후 러너를 중지할 수 있습니다. Upstart는 위의 systemd와 동일하게 동작합니다.