在 ubuntu 16.04 LTS 上安装的 gitlab 服务 目前稳定正常运行 但希望配置开机自启 不希望每次开机 都执行 sudo gitlab-ctl start
成功运行后 比如下面这样
$ sudo gitlab-ctl start
ok: run: gitaly: (pid 28489) 0s
ok: run: gitlab-workhorse: (pid 28497) 1s
ok: run: logrotate: (pid 28517) 0s
ok: run: nginx: (pid 28526) 1s
ok: run: postgresql: (pid 28532) 0s
ok: run: redis: (pid 28550) 1s
ok: run: sidekiq: (pid 28555) 0s
ok: run: unicorn: (pid 28561) 0s
$ cat /etc/systemd/system/gitlab.service
[Unit]
Description=gitlab server
After=network.target
[Service]
User=root
Group=root
ExecStart=/usr/bin/gitlab-ctl start
ExecStop=/usr/bin/gitlab-ctl stop
Restart=on-failure
Type=forking
[Install]
WantedBy=multi-user.target
创建了这个 service 但是 执行后 好几个服务不成功 比如下面这样
$ systemctl status gitlab
● gitlab.service - gitlab server
Loaded: loaded (/etc/systemd/system/gitlab.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Mon 2020-08-10 23:10:17 CST; 5s ago
Process: 28016 ExecStop=/usr/bin/gitlab-ctl stop (code=exited, status=0/SUCCESS)
Process: 27911 ExecStart=/usr/bin/gitlab-ctl start (code=exited, status=0/SUCCESS)
Main PID: 24927 (code=exited, status=0/SUCCESS)
Aug 10 23:10:12 dk-tpt400 gitlab-ctl[27911]: ok: run: unicorn: (pid 28001) 0s
Aug 10 23:10:14 dk-tpt400 gitlab-ctl[28016]: ok: down: gitaly: 0s, normally up
Aug 10 23:10:15 dk-tpt400 gitlab-ctl[28016]: ok: down: gitlab-workhorse: 1s, normally up
Aug 10 23:10:15 dk-tpt400 gitlab-ctl[28016]: ok: down: logrotate: 0s, normally up
Aug 10 23:10:16 dk-tpt400 gitlab-ctl[28016]: ok: down: nginx: 1s, normally up
Aug 10 23:10:16 dk-tpt400 gitlab-ctl[28016]: ok: down: postgresql: 0s, normally up
Aug 10 23:10:16 dk-tpt400 gitlab-ctl[28016]: ok: down: redis: 0s, normally up
Aug 10 23:10:17 dk-tpt400 gitlab-ctl[28016]: ok: down: sidekiq: 1s, normally up
Aug 10 23:10:17 dk-tpt400 gitlab-ctl[28016]: ok: down: unicorn: 0s, normally up
Aug 10 23:10:17 dk-tpt400 systemd[1]: Started gitlab server.
有一个 service gitlab-runsvdir.service
但是 enable 了 并不生效 无法启动 gitlab
或许可以 直接放在 /etc/rc.local
的 exit 0
之前 这样来实现 开机自启 但是不希望这么做 就希望 通过 systemd 来管理
systemd 的 [Service] 中 如果 Type=forking 那么建议使用 PIDFILE=xxx 那么 PIDFILE 该怎么找呢 求 linux 大神指导
1
also24 2020-08-11 00:27:58 +08:00
来个离题万里的~
https://docs.gitlab.com/omnibus/docker/#install-gitlab-using-docker-compose ``` mkdir gitlab && cd gitlab wget https://gitlab.com/gitlab-org/omnibus-gitlab/raw/master/docker/docker-compose.yml docker-compose up -d ``` |
2
wwqgtxx 2020-08-11 07:26:06 +08:00 via iPhone
把 Type 改成 simple 试试
|
5
whenov 2020-08-11 07:55:26 +08:00 via iPhone
用 journalctl -u gitlab 看看详细 log
|
6
dzdh 2020-08-11 08:49:34 +08:00
看 gitlab 自己本身的 log 不要看 systemd 的 log
有些程序需要特定目录下( data 目录)执行才可以的,gitlab 我不知道是不是,尝试 WorkingDirectory |
7
davidyin 2020-08-11 09:00:41 +08:00 via Android
就是想问一下,为什么还用 Ubuntu16.04 ?
|
8
lululau 2020-08-11 09:02:55 +08:00 via iPhone
gitlab 好多个服务组件吧,你用一个 unit 搞不定吧。gitlab 搭建这个场景用 docker 不好吗
|
9
AllenHua OP |
10
kekxv 2020-08-11 09:11:24 +08:00 via iPhone
|
12
julyclyde 2020-08-11 10:35:59 +08:00
1 建议看看 log,可能 systemd 和 shell 有些不同导致启动失败
2 建议把各服务分别托管给 systemd 而不是集中托管 |