V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AllenHua
V2EX  ›  GitLab

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

  •  
  •   AllenHua · 2020-08-10 23:36:43 +08:00 · 3009 次点击
    这是一个创建于 1563 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 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 大神指导

    13 条回复    2020-08-11 12:17:08 +08:00
    also24
        1
    also24  
       2020-08-11 00:27:58 +08:00
    wwqgtxx
        2
    wwqgtxx  
       2020-08-11 07:26:06 +08:00 via iPhone
    把 Type 改成 simple 试试
    AllenHua
        3
    AllenHua  
    OP
       2020-08-11 07:30:13 +08:00 via iPhone
    @also24 谢谢老哥
    AllenHua
        4
    AllenHua  
    OP
       2020-08-11 07:31:10 +08:00 via iPhone
    @wwqgtxx simple forking 和 oneshot 都试过 不行
    whenov
        5
    whenov  
       2020-08-11 07:55:26 +08:00 via iPhone
    用 journalctl -u gitlab 看看详细 log
    dzdh
        6
    dzdh  
       2020-08-11 08:49:34 +08:00
    看 gitlab 自己本身的 log 不要看 systemd 的 log

    有些程序需要特定目录下( data 目录)执行才可以的,gitlab 我不知道是不是,尝试 WorkingDirectory
    davidyin
        7
    davidyin  
       2020-08-11 09:00:41 +08:00 via Android
    就是想问一下,为什么还用 Ubuntu16.04 ?
    lululau
        8
    lululau  
       2020-08-11 09:02:55 +08:00 via iPhone
    gitlab 好多个服务组件吧,你用一个 unit 搞不定吧。gitlab 搭建这个场景用 docker 不好吗
    AllenHua
        9
    AllenHua  
    OP
       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
        10
    kekxv  
       2020-08-11 09:11:24 +08:00 via iPhone
    julyclyde
        11
    julyclyde  
       2020-08-11 10:31:06 +08:00
    @wwqgtxx simple 属于“显然不行”的那种,都不用试
    julyclyde
        12
    julyclyde  
       2020-08-11 10:35:59 +08:00
    1 建议看看 log,可能 systemd 和 shell 有些不同导致启动失败
    2 建议把各服务分别托管给 systemd 而不是集中托管
    AllenHua
        13
    AllenHua  
    OP
       2020-08-11 12:17:08 +08:00
    @julyclyde #12 嗯嗯 是的 多谢意见 回头认真看看 有进展我会更新此帖
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3417 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:50 · PVG 18:50 · LAX 02:50 · JFK 05:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.