{{< details >}}
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
{{< /details >}}
根据您安装极狐GitLab 的方式,有不同的方法来重启其服务。
{{< alert type=”note” >}}
所有方法都可能会导致短暂的停机时间。
{{< /alert >}}
Linux 软件包安装
如果您使用了 Linux 软件包 来安装极狐GitLab,您应该已经在 PATH
中有 gitlab-ctl
。
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>
向服务发送 SIGKILL
信号,例如 sidekiq
。之后,重启应该可以正常进行。
作为最后的手段,您可以尝试重新配置极狐GitLab。
重新配置 Linux 软件包安装
在文档中有时会要求您 重新配置 极狐GitLab。请记住,此方法仅适用于 Linux 软件包安装。
要重新配置 Linux 软件包安装,运行:
sudo gitlab-ctl reconfigure
在其配置 (/etc/gitlab/gitlab.rb
) 发生更改时,应重新配置极狐GitLab。
当您运行 gitlab-ctl reconfigure
时,Chef,即支持 Linux 软件包安装的底层配置管理应用程序,会运行一些检查。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 chart 安装
没有单个命令可以重启通过 云原生 Helm chart 安装的整个极狐GitLab 应用程序。通常,通过单独重启特定组件(例如,gitaly
、puma
、workhorse
或 gitlab-shell
)应该就足够了,只需删除与其相关的所有 pod:
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