• Gitlab启动所有服务的方式


    gitlab开机启动是一个systemd的脚本(multi-user.target.wants可能是同级目录下其他文件夹):

    /et/systemd/system/multi-user.target.wants/gitlab-runsvdir.service
    

    内容很简单,就是执行一条命令:

    [Unit]
    Description=GitLab Runit supervision process
    After=basic.target
    
    [Service]
    ExecStart=/opt/gitlab/embedded/bin/runsvdir-start
    Restart=always
    
    [Install]
    WantedBy=basic.target
    

    而,/opt/gitlab/embedded/bin/runsvdir-start 这个脚本是干什么的呢?看看内容,最主要的一句就是:

    exec env - PATH=$PATH \

    runsvdir -P /opt/gitlab/service 'log: ............

    runsvdir就是执行一个文件夹下面的所有的子文件夹的服务,而/opt/gitlab/service这个下面的服务有:

    pi@raspberrypi:/opt/gitlab/sv $ ll
    total 28
    drwxr-xr-x 4 root root 4096 Nov 25 21:06 gitlab-workhorse
    drwxr-xr-x 5 root root 4096 Nov 25 21:06 logrotate
    drwxr-xr-x 4 root root 4096 Nov 25 21:06 nginx
    drwxr-xr-x 5 root root 4096 Nov 25 21:06 postgresql
    drwxr-xr-x 4 root root 4096 Nov 25 21:06 redis
    drwxr-xr-x 4 root root 4096 Nov 25 21:06 sidekiq
    drwxr-xr-x 5 root root 4096 Nov 25 21:06 unicorn
    

    这样有一个好处,就是,自己启动自己的定制服务,而不需要系统层面也安装这些,比如nginx和unicorn。

    再来看看系统启动的这些服务:

    pi@raspberrypi:~ $ ps aux | grep runsv
    root    542 0.0 0.0  1836  924 ?    Ss  22:21  0:00 runsvdir -P /opt/gitlab/service log:
    root    702 0.0 0.0  1692  356 ?    Ss  22:21  0:00 runsv sidekiq
    root    703 0.0 0.0  1692  364 ?    Ss  22:21  0:00 runsv unicorn
    root    704 0.0 0.0  1692  340 ?    Ss  22:21  0:00 runsv logrotate
    root    705 0.0 0.0  1692  356 ?    Ss  22:21  0:00 runsv nginx
    root    706 0.0 0.0  1692  320 ?    Ss  22:21  0:00 runsv redis
    root    707 0.0 0.0  1692  324 ?    Ss  22:21  0:00 runsv gitlab-workhorse
    root    708 0.0 0.0  1692  308 ?    Ss  22:21  0:00 runsv postgresql
    pi    3334 0.0 0.1  4280 1912 pts/0  S+  22:50  0:00 grep --color=auto runsv
    

    可见,runsvdir把指定的子目录都运行了,而且要求生成log。

    转载自:多客博图

  • 相关阅读:
    poj1125传播谣言(弗洛伊德,求最长路)
    poj2253青蛙(可到达路径的单次跳跃最短距离)
    poj1860 兑换货币(bellman ford判断正环)
    poj1062 昂贵的礼物(dijkstra+枚举)
    hdu4081 秦始皇修路(次小生成树)
    梦想,永不停息!
    nofollow标签如何使用
    后台地址报错:Service Unavailable
    DEDECMS批量修改默认文章和列表命名规则的方法
    FreeOnTerminate 的线程在线程管理类的Destroy释放时手工释放的问题
  • 原文地址:https://www.cnblogs.com/zhncnblogs/p/15958566.html
Copyright © 2020-2023  润新知