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

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

破案了。ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini因为不是专业运维。不太明白这段的含义,楼里有人提醒后发现。可以直接运行这段。我的 gitea 安装在/usr/local/gitea 也就是说启动应该是/usr/local/gitea/gitea 这样感谢大家的热心解答。

换 docker 版本省事

折腾半天了 就差临门一脚了 XD... 不甘心啊。总得弄明白

他需要配置一个 home 目录,默认路径在这这里,/var/lib/gitea/,如果想修改也可以在 service 里面这样改Environment=USER=git HOME=/data/gitea_home GITEA_WORK_DIR=/data/giteals -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

去看文档,文档有示例

没有正规运维经验就老老实实按照文档做,不要自己发挥

看一下具体报了什么错

这段配置我在官方配置看到了。 我也有尝试配置成 Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/usr/local/giteaHOME 和 GITEA_WORK_DIR 的位置我是问的 gpt不知道是没配对还是什么原因 也是没启动成功

docker 多安稳

journalctl -u giteaxml-- 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/EXECNov 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/EXECNov 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/EXECNov 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).

建议用 docker 安装 docs.gitea.com/installation/install-with-docker

这应该和 gitea 没啥关系。你搜一下报错 203 ?

看起来主要和 ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini这段有关系问了 gpt 确认文件是否存在,确认是否有权限 这两个都是 OK 的。

systemctl 先 disable ,手动启动 ExecStart 看下详细错误

我记得有个坑成功的 code 是 1加一个 SuccessExitStatus=1 试试

同建议 docker 一步到位

app.ini 里是什么东西

[Unit]Description=Gitea (Git with a cup of tea)After=syslog.targetAfter=network.targetAfter=mysql.service[Service]RestartSec=2sType=notifyUser=gitGroup=gitWorkingDirectory=/usr/local/bin/gitea/ExecStart=/usr/local/bin/gitea/gitea web --config /usr/local/bin/gitea/custom/conf/app.iniRestart=alwaysEnvironment=USER=git HOME=/home/git GITEA_WORK_DIR=/usr/local/bin/giteaWatchdogSec=30s[Install]WantedBy=multi-user.target贴一下我自己的配置,供参考

你直接去 gitea 官方 QQ 群问好了,这里回复太费事

type=simple 可能有问题,可以像楼上换成 notify 试试。之前有个工单就是 snap 包安装一直 notify 不到导致 gitea 一直重启。

看一下 app.ini 里配置日志记录到哪里了,比如[log]MODE = fileLEVEL = InfoROOT_PATH = /home/gitea/log这样就去 /home/gitea/log/gitea.log 看看有什么日志

去 gitea 的官方討論區問更快你先用命令行啟動成功再換成 systemd 也不遲

发现大家对 systemd 无法启动都没任何排错思路。。。systemd 服务无法启动,就按照里面的参数手动搞,有 env file 就手动 export 下,有 workdir 就先 cd 进去,然后再手动启动你的 execStart 。203 exec 问题一般是命令 arg0 有问题,架构不对,二进制损坏,缺 so 啥的,总之先手动执行下

su git/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini先看看

另外 记得用户名 不是 gitea 吗。。不过我这里是 lxc alpineshls -lh /var/lib/giteatotal 201M -rw------- 1 gitea www-data 1.7K Nov 13 18:48 app.inidrwxr-x--- 2 gitea www-data 4.0K Mar 1 2023 customdrwxr-x--- 14 gitea www-data 4.0K Mar 1 2023 datadrwxr-x--- 2 gitea www-data 4.0K Nov 18 12:28 dbdrwxr-x--- 3 gitea www-data 4.0K Mar 1 2023 git/etc/passwd |grep giteagitea:x:100:82:gitea:/var/lib/gitea:/bin/ash

无脑给出 docker 建议其实是错误的建议

所有 notify 的服务应该都可以 simple 运行吧反过来不行

我用的官方示例里的 service 代码,正常可以跑起来

破案了。原来这条是可以执行的,我才发现是这里的问题/usr/local/gitea web/usr/local/gitea 是安装的文件夹 应该是/usr/local/gitea/gitea web太淦了。。。

主要是吧正常情况下 systemd 里运行出错都是人的错误而非 systemd 的错误

#28 个人经验是 systemd 运行错误的时候,直接就复制粘贴命令执行,如果能正常跑就是 systemd 配置的目录、权限、参数有疏漏,不能正常跑才看是软件问题还是其他问题