Descobri que User=nobody
precisa ser alterado para User=git
em /etc/systemd/system/[email protected] para corrigir o problema.
Estou tentando ativar o acesso ao meu servidor GitLab hospedado em relação ao git
propocol usando git-daemon
. Se eu estou rodando o git-daemon na linha de comando, ele funciona como esperado:
$ /usr/libexec/git-core/git-daemon --export-all --base-path=/var/opt/gitlab/git-data/repositories --syslog --verbose
$ git ls-remote git://localhost/cm/test_project.git
9cbff8accfa291ffeb8189f114c6d290a3856511 HEAD
2817d289674481ef02f05c3558063a5239d844b2 refs/heads/develop2
9cbff8accfa291ffeb8189f114c6d290a3856511 refs/heads/master
bce85bd749a69cb127bdb0e64c173e926eb77cbc refs/heads/old-master
$
Mas se eu estiver executando git-daemon
como systemd
unidade, estou recebendo o seguinte erro:
$ git ls-remote git://localhost/cm/test_project.git
fatal: read error: Connection reset by peer
$
e nos registros:
git-daemon[19089]: base-path '/var/opt/gitlab/git-data/repositories' does not exist or is not a directory
Eu tenho a seguinte configuração:
git-daemon.socket:
$ cat /etc/systemd/system/git-daemon.socket
[Unit]
Description=Git Activation Socket
[Socket]
ListenStream=0.0.0.0:9418
Accept=true
[Install]
WantedBy=sockets.target
$
git-daemon @ .service:
$ cat /etc/systemd/system/[email protected]
[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)
[Service]
User=nobody
ExecStart=-/usr/libexec/git-core/git-daemon --export-all --base-path=/var/opt/gitlab/git-data/repositories --syslog --verbose
StandardInput=socket
$
A porta 9418
está disponível:
$ netstat -nap | grep 9418
tcp 0 0 0.0.0.0:9418 0.0.0.0:* LISTEN 1/systemd
$
O diretório existe:
$ stat /var/opt/gitlab/git-data/repositories
File: ‘/var/opt/gitlab/git-data/repositories’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fc01h/64513d Inode: 226543354 Links: 46
Access: (2770/drwxrws---) Uid: ( 500/ git) Gid: ( 500/ git)
Access: 2017-06-09 13:13:16.514659543 +0000
Modify: 2017-04-22 23:28:16.227301854 +0000
Change: 2017-04-22 23:28:16.227301854 +0000
Birth: -
$
O SO é CentOS 7
, a versão do git é 1.8.3.1
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
$ git --version
git version 1.8.3.1
$
Alguém poderia me ajudar?
Descobri que User=nobody
precisa ser alterado para User=git
em /etc/systemd/system/[email protected] para corrigir o problema.