如何重启极狐GitLab

根据您安装极狐GitLab 的方式,有不同的方法可以重新启动其服务。

Omnibus 安装实例

如果你已经使用 Omnibus 安装包 来安装极狐GitLab,那么您的 PATH 中应该已经有了 gitlab-ctl

gitlab-ctl 与 Omnibus 安装包交互,可用于重新启动 GitLab Rails 应用程序 (Puma) 以及其它组件,例如:

  • GitLab Workhorse
  • Sidekiq
  • PostgreSQL (如果您使用捆绑组件)
  • NGINX (如果您使用捆绑组件)
  • Redis (如果您使用捆绑组件)
  • Logrotate

Omnibus GitLab restart

文档中可能有时会要求您 restart 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 作为代替。

Omnibus GitLab reconfigure

文档中可能有时会要求您重新配置极狐GitLab。请记住,此方法仅适用于 Omnibus 安装包。

使用以下命令重新配置 Omnibus GitLab:

sudo gitlab-ctl reconfigure

如果配置 (/etc/gitlab/gitlab.rb) 中的某些内容发生更改,则应该重新配置极狐GitLab。

当您运行此命令时,Chef(为 Omnibus GitLab 提供支持的底层配置管理应用程序)确保目录、权限和服务等所有内容都已就位,并且与最初交付时的形状相同。

如果任何配置文件发生更改,它还会在需要时重新启动 GitLab 组件。

如果您手动编辑由 Chef 管理的 /var/opt/gitlab 中的任何文件,则运行 reconfigure 将恢复更改并重新启动依赖于这些文件的服务。

源安装实例

如果您已经从源代码安装,请运行以下命令重新启动 GitLab:

sudo service gitlab restart

输出应与此类似:

Shutting down GitLab Puma
Shutting down GitLab Sidekiq
Shutting down GitLab Workhorse
Shutting down GitLab MailRoom
...
GitLab is not running.
Starting GitLab Puma
Starting GitLab Sidekiq
Starting GitLab Workhorse
Starting GitLab MailRoom
...
The GitLab Puma web server with pid 28059 is running.
The GitLab Sidekiq job dispatcher with pid 28176 is running.
The GitLab Workhorse with pid 28122 is running.
The GitLab MailRoom email processor with pid 28114 is running.
GitLab and all its components are up and running.

这应该重新启动 Puma、Sidekiq、GitLab Workhorse 和 Mailroom(如果已启用)。 可以在您的服务器上的 /etc/init.d/gitlab 中找到执行的 init 服务文件。


如果您正在使用其他初始化系统,比如 systemd,您可以查看 GitLab Recipes 仓库中的一些非官方服务。这些是官方支持的,因此使用它们需要您自担风险。

Helm chart 安装实例

没有一个命令可以重新启动通过云原生 Helm Chart 安装的整个 GitLab 应用程序。通常,通过删除与其相关的所有 pod 来单独重新启动特定组件(例如,gitalypumaworkhorsegitlab-shell)就足够了:

kubectl delete pods -l release=<helm release name>,app=<component name>

发布名称可以从 helm list 命令的输出中获得。