V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
helee9199
V2EX  ›  Linux

Linux 部署 gitea。无法用 service 启动

  •  
  •   helee9199 · 2023-11-18 10:03:50 +08:00 · 5149 次点击
    这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ./gitea web 可以启动 但是想设置为 service 启动就失败 /etc/systemd/system/gitea.service 配置

    [Unit]
    Description=Gitea
    After=syslog.target
    After=network.target
    
    [Service]
    RestartSec=2s
    Type=simple
    User=git
    Group=git
    ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    权限也给了

    [root@localhost local]# ls -l /usr/local/gitea
    total 131008
    drwxrwxr-x.  3 git git        18 Nov 18 06:21 custom
    drwxrwxr-x. 15 git git       213 Nov 18 07:30 data
    -rwxr-xr-x.  1 git git 134150560 Oct  3 21:27 gitea
    drwxrwxr-x.  2 git git         6 Nov 18 06:10 log
    [root@localhost local]# ls -l /usr/local/gitea/custom/conf/app.ini
    -rw-r--r--. 1 git git 1602 Nov 18 06:21 /usr/local/gitea/custom/conf/app.ini
    [root@localhost local]# sudo chown git:git /usr/local/gitea
    [root@localhost local]# sudo chmod 755 /usr/local/gitea
    [root@localhost local]# sudo systemctl start gitea
    [root@localhost local]# systemctl status gitea
    ● gitea.service - Gitea
       Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: disabled)
       Active: activating (auto-restart) (Result: exit-code) since Sat 2023-11-18 17:59:04 CST; 1s ago
      Process: 2945 ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini (code=exited, status=203/EXEC)
     Main PID: 2945 (code=exited, status=203/EXEC)
    
    Nov 18 17:59:04 localhost.localdomain systemd[1]: gitea.service: main process exited, code=exited, status=203/EXEC
    Nov 18 17:59:04 localhost.localdomain systemd[1]: Unit gitea.service entered failed state.
    Nov 18 17:59:04 localhost.localdomain systemd[1]: gitea.service failed.
    

    就是启动不起来 是什么原因

    第 1 条附言  ·  2023-11-18 13:55:33 +08:00
    破案了。
    ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini
    因为不是专业运维。不太明白这段的含义,楼里有人提醒后发现。可以直接运行这段。
    我的 gitea 安装在/usr/local/gitea
    也就是说启动应该是/usr/local/gitea/gitea 这样
    感谢大家的热心解答。
    30 条回复    2023-11-18 22:31:42 +08:00
    kaneg
        1
    kaneg  
       2023-11-18 10:08:12 +08:00 via iPhone
    换 docker 版本省事
    helee9199
        2
    helee9199  
    OP
       2023-11-18 10:13:33 +08:00
    @kaneg 折腾半天了 就差临门一脚了 XD... 不甘心啊。总得弄明白
    cxzlhr
        3
    cxzlhr  
       2023-11-18 10:18:33 +08:00
    他需要配置一个 home 目录,默认路径在这这里,/var/lib/gitea/,如果想修改也可以在 service 里面这样改

    Environment=USER=git HOME=/data/gitea_home GITEA_WORK_DIR=/data/gitea


    ```
    ls -al /var/lib/gitea/
    drwxr-xr-x 3 git git 18 Nov 17 07:14 .
    drwxr-xr-x. 41 root root 4096 Nov 17 07:14 ..
    drwx------ 2 git git 73 Nov 17 07:43 .ssh
    ```
    yaott2020
        4
    yaott2020  
       2023-11-18 10:24:17 +08:00 via Android
    去看文档,文档有示例
    adoal
        5
    adoal  
       2023-11-18 10:29:17 +08:00
    没有正规运维经验就老老实实按照文档做,不要自己发挥
    Quarter
        6
    Quarter  
       2023-11-18 10:36:00 +08:00 via Android
    看一下具体报了什么错
    helee9199
        7
    helee9199  
    OP
       2023-11-18 10:40:23 +08:00
    @cxzlhr 这段配置我在官方配置看到了。
    我也有尝试配置成 Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/usr/local/gitea
    HOME 和 GITEA_WORK_DIR 的位置我是问的 gpt
    不知道是没配对还是什么原因 也是没启动成功
    ferock
        8
    ferock  
       2023-11-18 10:44:18 +08:00 via iPhone
    docker 多安稳
    helee9199
        9
    helee9199  
    OP
       2023-11-18 10:44:26 +08:00
    @Quarter journalctl -u gitea
    ```xml
    -- Logs begin at Sat 2023-11-18 18:13:46 CST, end at Sat 2023-11-18 18:43:38 CST. --
    Nov 18 18:16:53 localhost.localdomain systemd[1]: Starting Gitea (Git with a cup of tea)...
    Nov 18 18:16:53 localhost.localdomain systemd[1]: gitea.service: main process exited, code=exited, status=203/EXEC
    Nov 18 18:16:53 localhost.localdomain systemd[1]: Failed to start Gitea (Git with a cup of tea).
    Nov 18 18:16:53 localhost.localdomain systemd[1]: Unit gitea.service entered failed state.
    Nov 18 18:16:53 localhost.localdomain systemd[1]: gitea.service failed.
    Nov 18 18:16:55 localhost.localdomain systemd[1]: gitea.service holdoff time over, scheduling restart.
    Nov 18 18:16:55 localhost.localdomain systemd[1]: Stopped Gitea (Git with a cup of tea).
    Nov 18 18:16:55 localhost.localdomain systemd[1]: Starting Gitea (Git with a cup of tea)...
    Nov 18 18:16:55 localhost.localdomain systemd[1]: gitea.service: main process exited, code=exited, status=203/EXEC
    Nov 18 18:16:55 localhost.localdomain systemd[1]: Failed to start Gitea (Git with a cup of tea).
    Nov 18 18:16:55 localhost.localdomain systemd[1]: Unit gitea.service entered failed state.
    Nov 18 18:16:55 localhost.localdomain systemd[1]: gitea.service failed.
    Nov 18 18:16:57 localhost.localdomain systemd[1]: gitea.service holdoff time over, scheduling restart.
    Nov 18 18:16:57 localhost.localdomain systemd[1]: Stopped Gitea (Git with a cup of tea).
    Nov 18 18:16:57 localhost.localdomain systemd[1]: Starting Gitea (Git with a cup of tea)...
    Nov 18 18:16:57 localhost.localdomain systemd[1]: gitea.service: main process exited, code=exited, status=203/EXEC
    Nov 18 18:16:57 localhost.localdomain systemd[1]: Failed to start Gitea (Git with a cup of tea).
    Nov 18 18:16:57 localhost.localdomain systemd[1]: Unit gitea.service entered failed state.
    Nov 18 18:16:57 localhost.localdomain systemd[1]: gitea.service failed.
    Nov 18 18:16:59 localhost.localdomain systemd[1]: gitea.service holdoff time over, scheduling restart.
    Nov 18 18:16:59 localhost.localdomain systemd[1]: Stopped Gitea (Git with a cup of tea).
    ```
    luojiyin87
        10
    luojiyin87  
       2023-11-18 10:45:59 +08:00
    lng2020
        11
    lng2020  
       2023-11-18 10:51:08 +08:00 via Android
    这应该和 gitea 没啥关系。你搜一下报错 203 ?
    helee9199
        12
    helee9199  
    OP
       2023-11-18 10:55:49 +08:00
    @lng2020
    看起来主要和 ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini
    这段有关系
    问了 gpt 确认文件是否存在,确认是否有权限 这两个都是 OK 的。
    to2false
        13
    to2false  
       2023-11-18 11:06:01 +08:00
    systemctl 先 disable ,手动启动 ExecStart 看下详细错误
    dzdh
        14
    dzdh  
       2023-11-18 11:12:27 +08:00
    我记得有个坑

    成功的 code 是 1
    加一个 SuccessExitStatus=1 试试
    hiveex
        15
    hiveex  
       2023-11-18 11:19:50 +08:00
    同建议 docker 一步到位
    lng2020
        16
    lng2020  
       2023-11-18 11:23:29 +08:00 via Android
    app.ini 里是什么东西
    dfdragon
        17
    dfdragon  
       2023-11-18 11:31:07 +08:00
    ```
    [Unit]
    Description=Gitea (Git with a cup of tea)
    After=syslog.target
    After=network.target
    After=mysql.service

    [Service]
    RestartSec=2s
    Type=notify
    User=git
    Group=git
    WorkingDirectory=/usr/local/bin/gitea/
    ExecStart=/usr/local/bin/gitea/gitea web --config /usr/local/bin/gitea/custom/conf/app.ini
    Restart=always
    Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/usr/local/bin/gitea
    WatchdogSec=30s

    [Install]
    WantedBy=multi-user.target
    ```

    贴一下我自己的配置,供参考
    lng2020
        18
    lng2020  
       2023-11-18 11:32:31 +08:00 via Android
    你直接去 gitea 官方 QQ 群问好了,这里回复太费事
    lng2020
        19
    lng2020  
       2023-11-18 11:34:55 +08:00 via Android
    type=simple 可能有问题,可以像楼上换成 notify 试试。之前有个工单就是 snap 包安装一直 notify 不到导致 gitea 一直重启。
    darrh00
        20
    darrh00  
       2023-11-18 12:01:19 +08:00
    看一下 app.ini 里配置日志记录到哪里了,比如

    [log]
    MODE = file
    LEVEL = Info
    ROOT_PATH = /home/gitea/log

    这样就去 /home/gitea/log/gitea.log 看看有什么日志
    roundgis
        21
    roundgis  
       2023-11-18 12:08:27 +08:00 via Android
    去 gitea 的官方討論區問更快

    你先用命令行啟動成功再換成 systemd 也不遲
    guanzhangzhang
        22
    guanzhangzhang  
       2023-11-18 12:24:13 +08:00
    发现大家对 systemd 无法启动都没任何排错思路。。。
    systemd 服务无法启动,就按照里面的参数手动搞,有 env file 就手动 export 下,有 workdir 就先 cd 进去,然后再手动启动你的 execStart 。203 exec 问题一般是命令 arg0 有问题,架构不对,二进制损坏,缺 so 啥的,总之先手动执行下
    joyanhui
        23
    joyanhui  
       2023-11-18 12:30:04 +08:00   ❤️ 1
    su git
    /usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini

    先看看
    joyanhui
        24
    joyanhui  
       2023-11-18 12:34:08 +08:00
    另外 记得用户名 不是 gitea 吗。。不过我这里是 lxc alpine

    ```sh
    ls -lh /var/lib/gitea
    total 201M
    -rw------- 1 gitea www-data 1.7K Nov 13 18:48 app.ini
    drwxr-x--- 2 gitea www-data 4.0K Mar 1 2023 custom
    drwxr-x--- 14 gitea www-data 4.0K Mar 1 2023 data
    drwxr-x--- 2 gitea www-data 4.0K Nov 18 12:28 db
    drwxr-x--- 3 gitea www-data 4.0K Mar 1 2023 git
    /etc/passwd |grep gitea
    gitea:x:100:82:gitea:/var/lib/gitea:/bin/ash
    ```
    julyclyde
        25
    julyclyde  
       2023-11-18 12:52:25 +08:00
    @kaneg 无脑给出 docker 建议其实是错误的建议
    julyclyde
        26
    julyclyde  
       2023-11-18 12:53:20 +08:00
    @lng2020 所有 notify 的服务应该都可以 simple 运行吧
    反过来不行
    lazyyz
        27
    lazyyz  
       2023-11-18 13:03:28 +08:00 via Android
    我用的官方示例里的 service 代码,正常可以跑起来
    helee9199
        28
    helee9199  
    OP
       2023-11-18 13:09:32 +08:00
    @joyanhui 破案了。原来这条是可以执行的,我才发现是这里的问题/usr/local/gitea web
    /usr/local/gitea 是安装的文件夹 应该是/usr/local/gitea/gitea web

    太淦了。。。
    julyclyde
        29
    julyclyde  
       2023-11-18 13:21:35 +08:00
    @guanzhangzhang 主要是吧正常情况下 systemd 里运行出错都是人的错误而非 systemd 的错误
    kkk9
        30
    kkk9  
       2023-11-18 22:31:42 +08:00   ❤️ 1
    @helee9199 #28 个人经验是 systemd 运行错误的时候,直接就复制粘贴命令执行,如果能正常跑就是 systemd 配置的目录、权限、参数有疏漏,不能正常跑才看是软件问题还是其他问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4795 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 05:36 · PVG 13:36 · LAX 21:36 · JFK 00:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.