正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLabを再起動する方法

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

GitLabのインストール方法に応じて、サービスを再起動する方法が異なります。

どの方法でも、短いダウンタイムが発生する可能性があります。

Linuxパッケージインストール

Linuxパッケージを使用してGitLabをインストールした場合、すでにgitlab-ctlPATHにあるはずです。

gitlab-ctlはLinuxパッケージインストールと連携して、GitLab Railsアプリケーション(Puma)や、次のような他のコンポーネントを再起動するために使用できます。

  • GitLab Workhorse
  • Sidekiq
  • PostgreSQL(バンドル版を使用している場合)
  • NGINX(バンドル版を使用している場合)
  • Redis(バンドル版を使用している場合)
  • Mailroom
  • Logrotate

Linuxパッケージインストールを再起動する

ドキュメントの中で、GitLabの_再起動_を求められる場合があります。Linuxパッケージインストールを再起動するには、次を実行します。

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>を使用して、そのサービス(例: sidekiq)にSIGKILLシグナルを送信できます。その後は再起動が正常に行えるはずです。

どうしても再起動できない場合は、代わりにGitLabを再設定してみてください。

Linuxパッケージインストールを再設定する

ドキュメントの中で、GitLabの_再設定_を求められる場合があります。この方法は、Linuxパッケージインストールにのみ適用されることに注意してください。

Linuxパッケージインストールを再設定するには、次を実行します。

sudo gitlab-ctl reconfigure

設定(/etc/gitlab/gitlab.rb)を変更した場合は、GitLabの再設定が必要になります。

gitlab-ctl reconfigureを実行すると、Linuxパッケージインストールの強化基盤となっている設定管理アプリケーションであるChefが、いくつかのチェックを実行します。Chefは、ディレクトリ、権限、サービスが適切に配置され、機能していることを確認します。

設定ファイルのいずれかを変更した場合、ChefはGitLabコンポーネントの再起動も行います。

/var/opt/gitlab内のChefによって管理されているファイルを手動で編集した場合、reconfigureを実行するとその変更が元に戻り、それらのファイルに依存するサービスが再起動されます。

自己コンパイルによるインストール

公式インストールガイドに従って自己コンパイルでインストールした場合は、次のコマンドを実行してGitLabを再起動します。

# For systems running systemd
sudo systemctl restart gitlab.target

# For systems running SysV init
sudo service gitlab restart

これにより、Puma、Sidekiq、GitLab Workhorse、Mailroom(有効になっている場合)が再起動されます。

Helmチャートによるインストール

クラウドネイティブなHelmチャートを使用してインストールしたGitLabアプリケーション全体を再起動するための単一のコマンドはありません。通常は、関連するすべてのポッドを削除して、特定のコンポーネント(たとえば、gitalypumaworkhorsegitlab-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