BigW Consortium Gitlab

restart_gitlab.md 4.55 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# How to restart GitLab

Depending on how you installed GitLab, there are different methods to restart
its service(s).

If you want the TL;DR versions, jump to:

- [Omnibus GitLab restart](#omnibus-gitlab-restart)
- [Omnibus GitLab reconfigure](#omnibus-gitlab-reconfigure)
- [Source installation restart](#installations-from-source)

## Omnibus installations

If you have used the [Omnibus packages][omnibus-dl] to install GitLab, then
15
you should already have `gitlab-ctl` in your `PATH`.
16 17 18 19 20 21 22 23 24 25

`gitlab-ctl` interacts with the Omnibus packages and can be used to restart the
GitLab Rails application (Unicorn) as well as the other components, like:

- GitLab Workhorse
- Sidekiq
- PostgreSQL (if you are using the bundled one)
- NGINX (if you are using the bundled one)
- Redis (if you are using the bundled one)
- [Mailroom][]
26
- Logrotate
27 28 29

### Omnibus GitLab restart

30 31
There may be times in the documentation where you will be asked to _restart_
GitLab. In that case, you need to run the following command:
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

```bash
sudo gitlab-ctl restart
```

The output should be similar to this:

```
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: unicorn: (pid 11338) 0s
```

To restart a component separately, you can append its service name to the
`restart` command. For example, to restart **only** NGINX you would run:

```bash
sudo gitlab-ctl restart nginx
```

To check the status of GitLab services, run:

```bash
sudo gitlab-ctl status
```

63 64 65 66 67 68 69 70
Notice that all services say `ok: run`.

Sometimes, components time out during the restart and sometimes they get stuck.
In that case, you can use `gitlab-ctl kill <service>` to send the `SIGKILL`
signal to the service, for example `sidekiq`. After that, a restart should
perform fine.

As a last resort, you can try to
71 72 73 74
[reconfigure GitLab](#omnibus-gitlab-reconfigure) instead.

### Omnibus GitLab reconfigure

75 76
There may be times in the documentation where you will be asked to _reconfigure_
GitLab. Remember that this method applies only for the Omnibus packages.
77 78 79 80 81 82 83 84 85 86 87 88 89

Reconfigure Omnibus GitLab with:

```bash
sudo gitlab-ctl reconfigure
```

Reconfiguring GitLab should occur in the event that something in its
configuration (`/etc/gitlab/gitlab.rb`) has changed.

When you run this command, [Chef], the underlying configuration management
application that powers Omnibus GitLab, will make sure that all directories,
permissions, services, etc., are in place and in the same shape that they were
90 91 92 93 94 95 96 97
initially shipped.

It will also restart GitLab components where needed, if any of their
configuration files have changed.

If you manually edit any files in `/var/opt/gitlab` that are managed by Chef,
running reconfigure will revert the changes AND restart the services that
depend on those files.
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129

## Installations from source

If you have followed the official installation guide to [install GitLab from
source][install], run the following command to restart GitLab:

```
sudo service gitlab restart
```

The output should be similar to this:

```
Shutting down GitLab Unicorn
Shutting down GitLab Sidekiq
Shutting down GitLab Workhorse
Shutting down GitLab MailRoom
...
GitLab is not running.
Starting GitLab Unicorn
Starting GitLab Sidekiq
Starting GitLab Workhorse
Starting GitLab MailRoom
...
The GitLab Unicorn 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.
```

This should restart Unicorn, Sidekiq, GitLab Workhorse and [Mailroom][]
130 131
(if enabled). The init service file that does all the magic can be found on
your server in `/etc/init.d/gitlab`.
132 133 134 135 136

---

If you are using other init systems, like systemd, you can check the
[GitLab Recipes][gl-recipes] repository for some unofficial services. These are
137
**not** officially supported so use them at your own risk.
138 139 140 141


[omnibus-dl]: https://about.gitlab.com/downloads/ "Download the Omnibus packages"
[install]: ../install/installation.md "Documentation to install GitLab from source"
142
[mailroom]: reply_by_email.md "Used for replying by email in GitLab issues and merge requests"
143 144 145
[chef]: https://www.chef.io/chef/ "Chef official website"
[src-service]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/support/init.d/gitlab "GitLab init service file"
[gl-recipes]: https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/init "GitLab Recipes repository"