维护命令

安装后可以运行以下命令。

获取服务状态

运行 sudo gitlab-ctl status,查看每个组件的当前状态和正常运行时间。

输出将类似于以下内容:

run: nginx: (pid 972) 7s; run: log: (pid 971) 7s
run: postgresql: (pid 962) 7s; run: log: (pid 959) 7s
run: redis: (pid 964) 7s; run: log: (pid 963) 7s
run: sidekiq: (pid 967) 7s; run: log: (pid 966) 7s
run: puma: (pid 961) 7s; run: log: (pid 960) 7s

以第一行为例:

  • Nginx 是进程名称。
  • 972 是进程标识符。
  • NGINX 已经运行了 7 秒(7s)。
  • log 表示附加到上述进程的 svlogd 日志记录进程
  • 971 是记录进程的进程标识符。
  • 记录进程已经运行了 7 秒(7s)。

跟踪进程日志

查看设置日志文档

启动和停止

Omnibus GitLab 安装和配置后,您的服务器将运行一个 runit 服务目录(runsvdir)进程,该进程在启动时通过 /etc/inittab/etc/init/gitlab-runsvdir.conf 启动。不要直接处理 runsvdir 进程;您可以改用 gitlab-ctl 前端。

您可以使用以下命令启动、停止或重新启动极狐GitLab 及其所有组件。

# Start all GitLab components
sudo gitlab-ctl start

# Stop all GitLab components
sudo gitlab-ctl stop

# Restart all GitLab components
sudo gitlab-ctl restart

请注意,在单核服务器上,重启 Puma 和 Sidekiq 可能需要长达一分钟的时间。您的极狐GitLab 实例将出现 502 错误,直到 Puma 再次启动。

您也可以启动、停止或重新启动单个组件。

sudo gitlab-ctl restart sidekiq

Puma 确实支持几乎零停机的重新加载。可以按如下方式触发:

sudo gitlab-ctl hup puma

请注意,您必须等待 hup命令完成,这可能需要一些时间。将该节点从池中移出,并且在完成之前不要在调用该节点的节点上重新启动服务。您也无法使用 Puma 重新加载来更新 Ruby 运行时。

Puma 有以下 signal 来控制应用程序行为:

Signal Puma
HUP 重新打开定义的日志文件,或停止进程以强制重启
INT 优雅地停止请求处理
USR1 分阶段重启 workers,滚动重启,无需重新加载配置
USR2 重新启动 workers 并重新加载配置
QUIT 退出主进程

对于 Puma,gitlab-ctl hup puma 将发送一系列 SIGINTSIGTERM(如果进程没有重新启动)signal。一旦收到 SIGINT,Puma 就会停止接受新连接。它完成所有正在运行的请求,然后 runit 重新启动服务。

调用 Rake 任务

要调用极狐GitLab Rake 任务,请使用 gitlab-rake。例如:

sudo gitlab-rake gitlab:check

如果您是 git 用户,请省略 sudo

与传统的极狐GitLab 安装相反,无需更改用户或 RAILS_ENV 环境变量;由 gitlab-rake 包装脚本处理。

启动 Rails 控制台会话

获取更多信息,查看 Rails 控制台

启动 PostgreSQL 超级用户 psql 会话

如果您需要超级用户访问捆绑的 PostgreSQL 服务,您可以使用 gitlab-psql 命令。它采用与常规 psql 命令相同的参数。

# Superuser psql access to GitLab's database
sudo gitlab-psql -d gitlabhq_production

仅在您至少运行一次 gitlab-ctl reconfigure 后才有效。gitlab-psql 命令不能用于连接远程 PostgreSQL 服务器,也不能用于连接本地非 Omnibus PostgreSQL 服务器。

在 Geo 跟踪数据库中启动 PostgreSQL 超级用户 psql 会话

与前面的命令类似,如果您需要超级用户访问捆绑的 Geo 跟踪数据库(geo-postgresql),则可以使用gitlab-geo-psql。它采用与常规 psql 命令相同的参数。

# Superuser psql access to GitLab's Geo tracking database
sudo gitlab-geo-psql -d gitlabhq_geo_production

Container Registry 垃圾回收

Container Registry 可能会使用大量磁盘空间。为了清除未使用的镜像层,镜像库包含一个垃圾收集命令

限制用户登录极狐GitLab

如果需要临时限制用户登录极狐GitLab,可以使用 sudo gitlab-ctl deploy-page up。当用户访问您的极狐GitLab URL 时,他们将看到一个任意的 Deploy in progress 页面。

要删除页面,您只需运行sudo gitlab-ctl deploy-page down。 您还可以使用 sudo gitlab-ctl deploy-page status 检查部署页面的状态。