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

Linux 部署 gitea。无法用 service 启动

  •  
  •   helee9199 · 161 天前 · 3208 次点击
    这是一个创建于 161 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ./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 条附言  ·  161 天前
    破案了。
    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  
       161 天前 via iPhone
    换 docker 版本省事
    helee9199
        2
    helee9199  
    OP
       161 天前
    @kaneg 折腾半天了 就差临门一脚了 XD... 不甘心啊。总得弄明白
    cxzlhr
        3
    cxzlhr  
       161 天前
    他需要配置一个 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  
       161 天前 via Android
    去看文档,文档有示例
    adoal
        5
    adoal  
       161 天前
    没有正规运维经验就老老实实按照文档做,不要自己发挥
    Quarter
        6
    Quarter  
       161 天前 via Android
    看一下具体报了什么错
    helee9199
        7
    helee9199  
    OP
       161 天前
    @cxzlhr 这段配置我在官方配置看到了。
    我也有尝试配置成 Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/usr/local/gitea
    HOME 和 GITEA_WORK_DIR 的位置我是问的 gpt
    不知道是没配对还是什么原因 也是没启动成功
    ferock
        8
    ferock  
       161 天前 via iPhone
    docker 多安稳
    helee9199
        9
    helee9199  
    OP
       161 天前
    @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  
       161 天前
    lng2020
        11
    lng2020  
       161 天前 via Android
    这应该和 gitea 没啥关系。你搜一下报错 203 ?
    helee9199
        12
    helee9199  
    OP
       161 天前
    @lng2020
    看起来主要和 ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini
    这段有关系
    问了 gpt 确认文件是否存在,确认是否有权限 这两个都是 OK 的。
    to2false
        13
    to2false  
       161 天前
    systemctl 先 disable ,手动启动 ExecStart 看下详细错误
    dzdh
        14
    dzdh  
       161 天前
    我记得有个坑

    成功的 code 是 1
    加一个 SuccessExitStatus=1 试试
    hiveex
        15
    hiveex  
       161 天前
    同建议 docker 一步到位
    lng2020
        16
    lng2020  
       161 天前 via Android
    app.ini 里是什么东西
    dfdragon
        17
    dfdragon  
       161 天前
    ```
    [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  
       161 天前 via Android
    你直接去 gitea 官方 QQ 群问好了,这里回复太费事
    lng2020
        19
    lng2020  
       161 天前 via Android
    type=simple 可能有问题,可以像楼上换成 notify 试试。之前有个工单就是 snap 包安装一直 notify 不到导致 gitea 一直重启。
    darrh00
        20
    darrh00  
       161 天前
    看一下 app.ini 里配置日志记录到哪里了,比如

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

    这样就去 /home/gitea/log/gitea.log 看看有什么日志
    roundgis
        21
    roundgis  
       161 天前 via Android
    去 gitea 的官方討論區問更快

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

    先看看
    joyanhui
        24
    joyanhui  
       161 天前
    另外 记得用户名 不是 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  
       161 天前
    @kaneg 无脑给出 docker 建议其实是错误的建议
    julyclyde
        26
    julyclyde  
       161 天前
    @lng2020 所有 notify 的服务应该都可以 simple 运行吧
    反过来不行
    lazyyz
        27
    lazyyz  
       161 天前 via Android
    我用的官方示例里的 service 代码,正常可以跑起来
    helee9199
        28
    helee9199  
    OP
       161 天前
    @joyanhui 破案了。原来这条是可以执行的,我才发现是这里的问题/usr/local/gitea web
    /usr/local/gitea 是安装的文件夹 应该是/usr/local/gitea/gitea web

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