
在 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 试试 |
用 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 而不是集中托管 |