GitLab 다시 시작하는 방법
GitLab을 설치한 방법에 따라 서비스를 다시 시작하는 방법이 다릅니다.
리눅스 패키지 설치
리눅스 패키지를 사용하여 GitLab을 설치했다면, PATH
에 gitlab-ctl
이 이미 있어야 합니다.
gitlab-ctl
은 리눅스 패키지 설치와 상호작용하며 GitLab Rails 애플리케이션(Puma)과 다음과 같은 다른 구성 요소들을 다시 시작하는 데 사용됩니다.
- GitLab Workhorse
- Sidekiq
- PostgreSQL(번들된 것을 사용하는 경우)
- NGINX(번들된 것을 사용하는 경우)
- Redis(번들된 것을 사용하는 경우)
- Mailroom
- Logrotate
리눅스 패키지 설치 다시 시작하기
문서의 어딘가에서 GitLab을 _다시 시작_하라는 요청을 받을 수 있습니다. 리눅스 패키지 설치를 다시 시작하려면 다음을 실행하세요:
sudo gitlab-ctl restart
출력 결과는 다음과 유사해야 합니다:
ok: run: gitlab-workhorse: (pid 11291) 1s
ok: run: logrotate: (pid 11299) 0s
ok: run: mailroom: (pid 11306) 0s
ok: run: nginx: (pid 11309) 0s
ok: run: postgresql: (pid 11316) 1s
ok: run: redis: (pid 11325) 0s
ok: run: sidekiq: (pid 11331) 1s
ok: run: puma: (pid 11338) 0s
구성 요소를 별도로 다시 시작하려면, 해당 서비스 이름을 restart
명령에 추가할 수 있습니다. 예를 들어, 단지 NGINX만 다시 시작하려면 다음을 실행합니다:
sudo gitlab-ctl restart nginx
GitLab 서비스의 상태를 확인하려면 다음을 실행하세요:
sudo gitlab-ctl status
모든 서비스가 ok: run
이라고 표시되는 것을 확인하세요.
때때로 구성 요소가 다시 시작하는 동안 타임아웃이 발생할 수 있습니다(로그에서 timeout
을 찾아보세요)와 때때로 멈출 수 있습니다.
그 경우, gitlab-ctl kill <service>
를 사용하여 해당 서비스에 SIGKILL
신호를 보낼 수 있습니다. 예를 들어 sidekiq
에 대해 수행할 수 있습니다. 이후 다시 시작을 수행하면 제대로 진행될 것입니다.
마지막 수단으로, 대신 GitLab을 재구성하는 것을 시도할 수 있습니다.
리눅스 패키지 설치 다시 구성하기
문서의 어딘가에서 GitLab을 _재구성_하라는 요청을 받을 수 있습니다. 이 방법은 리눅스 패키지 설치에만 적용됩니다.
리눅스 패키지 설치를 재구성하려면 다음을 실행하세요:
sudo gitlab-ctl reconfigure
GitLab의 구성(/etc/gitlab/gitlab.rb
)이 변경된 경우, GitLab을 재구성해야 합니다.
gitlab-ctl reconfigure
를 실행하면, 리눅스 패키지 설치를 지원하는 기본 구성 관리 애플리케이션인 Chef가 몇 가지 검사를 실행합니다.
Chef는 디렉터리, 권한 및 서비스가 제자리에 있고 작동하는지 확인합니다.
Chef는 구성 파일이 변경된 경우 GitLab 구성 요소를 다시 시작합니다.
/var/opt/gitlab
에 있는 Chef가 관리하는 파일을 수동으로 편집하는 경우, reconfigure
를 실행하면 변경 사항이 복원되고 이러한 파일에 의존하는 서비스가 다시 시작됩니다.
자체 컴파일 설치
공식 설치 가이드를 따라 자체 컴파일 설치를 완료했다면, 다음 명령어를 실행하여 GitLab을 재시작하세요:
# systemd가 실행되는 시스템의 경우
sudo systemctl restart gitlab.target
# SysV init이 실행되는 시스템의 경우
sudo service gitlab restart
이 명령어는 Puma, Sidekiq, GitLab Workhorse 및 Mailroom(사용이 활성화된 경우)을 재시작해야 합니다.
Helm 차트 설치
cloud-native Helm chart를 통해 설치된 GitLab 애플리케이션 전체를 재시작하는 단일 명령어는 없습니다. 일반적으로 특정 구성 요소를 별도로 재시작하는 것으로 충분합니다(예: gitaly
, puma
, workhorse
또는 gitlab-shell
) 관련된 모든 파드를 삭제하여:
kubectl delete pods -l release=<helm release name>,app=<component name>
릴리스 이름은 helm list
명령어의 출력에서 얻을 수 있습니다.
Docker 설치
Docker 설치에서 구성을 변경할 경우 해당 변경 사항을 적용하려면 다음을 재시작해야 합니다:
- 주요
gitlab
컨테이너. - 모든 개별 구성 요소 컨테이너.
예를 들어, Sidekiq를 별도의 컨테이너에서 배포했다면, 컨테이너를 재시작하려면 다음 명령어를 실행하세요:
sudo docker restart gitlab
sudo docker restart sidekiq