GitLabを再起動する方法
GitLabのインストール方法によって、サービスを再起動する方法が異なります。
Linux パッケージのインストール
Linux パッケージを使ってGitLab をインストールした場合は、PATH
にgitlab-ctl
が既にあるはずです。
gitlab-ctl
はLinuxパッケージのインストールと相互作用し、GitLab Railsアプリケーション(Puma)だけでなく、他のコンポーネントも再起動させることができます:
- GitLab Workhorse
- Sidekiq
- PostgreSQL (バンドルされているものを使用している場合)
- NGINX (バンドルされているものを使用している場合)
- Redis (バンドルされているものを使用している場合)
- メールルーム
- 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>
を使ってSIGKILL
シグナルをサービスに送ることができます。例えばsidekiq
。その後、再起動は問題なく実行されるはずです。
最後の手段として、GitLabを再設定してみることもできます。
Linux パッケージのインストールの再設定
ドキュメントの中で、GitLabの_再設定を_求められることがあるかもしれません。この方法は Linux パッケージのインストールにのみ適用されることを覚えておいてください。
Linux パッケージのインストールを再設定するには、次のコマンドを実行します:
sudo gitlab-ctl reconfigure
GitLabの再設定は、GitLabの設定(/etc/gitlab/gitlab.rb
)が変更された場合に行う必要があります。
gitlab-ctl reconfigure
を実行すると、Linuxのパッケージインストールを強力にする内部設定管理アプリケーションであるChefがいくつかのチェックを実行します。Chefはディレクトリ、権限、サービスが適切に配置され、動作していることを確認します。
Chefはまた、GitLabコンポーネントの設定ファイルが変更された場合、GitLabコンポーネントを再起動します。
Chefが管理している/var/opt/gitlab
のファイルを手動で編集した場合、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アプリケーション全体を再起動するコマンドはありません。通常は、特定のコンポーネント(たとえば、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