求指教 gitlab 正确的开机自启方式 (排除 /etc/rc.local 尽量使用 systemd)

2020-08-10 23:36:43 +08:00
 AllenHua

在 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

目前所做的努力:

尝试 1

$ 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.

尝试 2

有一个 service gitlab-runsvdir.service 但是 enable 了 并不生效 无法启动 gitlab

尝试 3

或许可以 直接放在 /etc/rc.localexit 0 之前 这样来实现 开机自启 但是不希望这么做 就希望 通过 systemd 来管理

systemd 的 [Service] 中 如果 Type=forking 那么建议使用 PIDFILE=xxx 那么 PIDFILE 该怎么找呢 求 linux 大神指导

2874 次点击
所在节点    GitLab
13 条回复
also24
2020-08-11 00:27:58 +08:00
wwqgtxx
2020-08-11 07:26:06 +08:00
把 Type 改成 simple 试试
AllenHua
2020-08-11 07:30:13 +08:00
@also24 谢谢老哥
AllenHua
2020-08-11 07:31:10 +08:00
@wwqgtxx simple forking 和 oneshot 都试过 不行
whenov
2020-08-11 07:55:26 +08:00
用 journalctl -u gitlab 看看详细 log
dzdh
2020-08-11 08:49:34 +08:00
看 gitlab 自己本身的 log 不要看 systemd 的 log

有些程序需要特定目录下( data 目录)执行才可以的,gitlab 我不知道是不是,尝试 WorkingDirectory
davidyin
2020-08-11 09:00:41 +08:00
就是想问一下,为什么还用 Ubuntu16.04 ?
lululau
2020-08-11 09:02:55 +08:00
gitlab 好多个服务组件吧,你用一个 unit 搞不定吧。gitlab 搭建这个场景用 docker 不好吗
AllenHua
2020-08-11 09:06:55 +08:00
@whenov #5 对 晚上回去看看
@dzdh #6 谢谢 ok WorkingDirectory

@davidyin #7 古董电脑 懒得升级了 2009 年的 thinkpad t400 第一代酷睿处理器
@lululau #8 你说得对 很多服务组件 但是 我对 docker 不太熟 下次可以用用 docker 搭 gitlab 谢谢意见
kekxv
2020-08-11 09:11:24 +08:00
julyclyde
2020-08-11 10:31:06 +08:00
@wwqgtxx simple 属于“显然不行”的那种,都不用试
julyclyde
2020-08-11 10:35:59 +08:00
1 建议看看 log,可能 systemd 和 shell 有些不同导致启动失败
2 建议把各服务分别托管给 systemd 而不是集中托管
AllenHua
2020-08-11 12:17:08 +08:00
@julyclyde #12 嗯嗯 是的 多谢意见 回头认真看看 有进展我会更新此帖

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697215

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX