debian jessie中的subversion包不包含systemd服务文件.什么是最简单的自动启动解决方案.我试试
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
#EnvironmentFile=/etc/conf.d/svnserve
#ExecStart=/usr/bin/svnserve --daemon $SVNSERVE_ARGS
ExecStart=/usr/bin/svnserve -d -r /svnFolder/repositories
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Alias=svnserve.service
Run Code Online (Sandbox Code Playgroud)
它是https://bbs.archlinux.org/viewtopic.php?id=190127的改编版,但我直接在这里直接为svnserve设置参数.
什么可以改善?
Yve*_*tin 26
以下是使用具有适当日志记录svnserve的专用svn服务帐户运行服务"the-Debian-way" 的建议.根据FHS,存储库应存储在/srv/:
一,systemd的服务配置/etc/systemd/system/svnserve.service:
mkdir -p /srv/svn/repos; chown svn /srv/svn/repos
Run Code Online (Sandbox Code Playgroud)
二,服务启动选项/etc/default/svnserve:
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
RuntimeDirectory=svnserve
PIDFile=/run/svnserve/svnserve.pid
EnvironmentFile=/etc/default/svnserve
ExecStart=/usr/bin/svnserve $DAEMON_ARGS
User=svn
Group=svn
KillMode=control-group
Restart=on-failure
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
要正常工作,必须使用适当的所有权创建日志文件的文件夹:
# svnserve options
DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root /srv/svn/repos --log-file /var/log/svnserve/svnserve.log"
Run Code Online (Sandbox Code Playgroud)
以日志轮换配置结束/etc/logrotate.d/svnserve:
mkdir /var/log/svnserve; chown svn /var/log/svnserve
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
更新:我的以下答案已过时。这些改进和其他改进已融入Yves Martin 的出色解决方案中。
我有两个改进:一般建议不要以root身份运行此类东西。为此创建一个用户,例如“svn”。还建议在使用分叉时显式指定 PID 文件。我的 svnserve.service 看起来很像你的,除了我添加了以下行:
User=svn
Group=svn
PIDFile=/usr/local/svn/svnserve.pid
ExecStart=/usr/bin/svnserve -d -r /usr/local/svn/repos --pid-file /usr/local/svn/svnserve.pid
Run Code Online (Sandbox Code Playgroud)