0
点赞
收藏
分享

微信扫一扫

Git 守护进程


Git 守护进程


接下来,我们将使用“Git”协议设置一个为存储库提供服务的守护程序。这是快速、未经身份验证地访问 Git 数据的常用选择。请记住,由于这不是经过身份验证的服务,因此您通过此协议提供的任何内容在其网络中都是公开的。

如果您在防火墙外的服务器上运行此内容,则应仅将其用于对全世界公开可见的项目。如果运行它的服务器位于防火墙内,则可以将其用于大量人员或计算机(持续集成或生成服务器)具有只读访问权限的项目,前提是您不希望为每个项目添加 SSH 密钥。

无论如何,Git协议相对容易设置。基本上,您需要以守护方式运行此命令:

$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/

该选项允许服务器重新启动而无需等待旧连接超时,而该选项允许用户在不指定整个路径的情况下克隆项目,并且末尾的路径告诉Git守护程序在何处查找要导出的存储库。如果您正在运行防火墙,则还需要在要设置防火墙的盒子上的端口9418处打一个洞。–reuseaddr–base-path

您可以通过多种方式守护此过程,具体取决于您运行的操作系统。

由于是现代Linux发行版中最常见的初始化系统,因此您可以将其用于此目的。只需将包含以下内容的文件放入:

systemd/etc/systemd/system/git-daemon.service

[Unit]
Description=Start Git Daemon

[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/srv/git/ /srv/git/

Restart=always
RestartSec=500ms

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon

User=git
Group=git

[Install]
WantedBy=multi-user.target

您可能已经注意到 Git 守护程序在这里以组和用户身份启动。修改它以满足您的需求,并确保系统上存在提供的用户。此外,请检查 Git 二进制文件是否确实位于 ,并在必要时更改路径。git/usr/bin/git

最后,您将运行以在启动时自动启动服务,并可以分别使用 和 启动和停止服务。systemctl enable git-​​daemonsystemctl start git-daemonsystemctl stop git-daemon​

在其他系统上,您可能希望使用 系统中的脚本或其他东西 — 只要您得到该命令的守护并以某种方式监视即可。xinetdsysvinit

接下来,您必须告诉 Git 允许对哪些存储库进行未经身份验证的基于 Git 服务器的访问。您可以通过创建名为 的文件在每个存储库中执行此操作。git-daemon-export-ok

$ cd /path/to/project.git
$ touch

该文件的存在告诉 Git,无需身份验证即可为该项目提供服务。


举报

相关推荐

0 条评论