svn - 如何在 Ubuntu 20.04 启动时自动启动颠覆服务器
问题描述
我正在尝试解压我的旧 svn 服务器,但无法让 svn 在 Ubuntu 20.04 启动时自动启动。我觉得我已经阅读了 100 篇博客和帮助帖子,但我无法让它发挥作用。
当我尝试“systemctl enable svnserve.service”时的最终结果出现错误:
update-rc.d:错误:svnserve 默认启动不包含运行级别,正在中止。
这正是我已经实施的。我已经尝试使用 shell 脚本并使用 $DAEMON_ARGS 直接调用它。两者都行不通。
创建一个 systemd 服务文件
nano /etc/systemd/system/svnserve.service
将以下内容复制到文件中
[Unit]
After=network.service
[Service]
#ExecStart=svnserve -d -r /var/lib/svn
#ExecStart==/etc/default/svnserve $DAEMON_ARGS
ExecStart=/usr/local/bin/start_svn.sh
[Install]
#WantedBy=default.target
WantedBy=multi-user.target
设置权限
chmod 664 /etc/systemd/system/svnserve.service
创建以下文件
nano /etc/default/svnserve
将以下内容添加到文件中
# svnserve options
DAEMON_ARGS="--daemon --pid-file /run/svnserve/svnserve.pid --root /var/lib/svn"
创建脚本文件
nano /usr/local/bin/start_svn.sh
将以下内容添加到文件中
#!/bin/sh
### BEGIN INIT INFO
# Provides: svnserve.service
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Starts SVN Server
### END INIT INFO
svnserve -d -r /var/lib/svn
使其可执行
chmod u+x /usr/local/bin/start_svn.sh
启用服务单元
systemctl daemon-reload
systemctl start svnserve.service
systemctl enable svnserve.service
任何帮助将不胜感激。
编辑
运行 systemctl status svnserve.service 后
svnserve.service 已加载:已加载(/etc/systemd/system/svnserve.service;已禁用;供应商预设:已启用) 活动:不活动(已死)
另一方面,我在这篇文章中复制了该过程:https ://linuxconfig.org/how-to-run-script-on-startup-on-ubuntu-20-04-focal-fossa-server-desktop
我让该脚本正常工作。然后我补充说:
svnserve -d -r /var/lib/svn
到 shell 脚本。重新启动时,脚本运行并更新驱动器空间,但 SVN 仍不会启动。我查看了一些日记条目,但没有找到任何东西。没有意义为什么它不会在启动时启动。如果我在登录后手动运行 shell 脚本,它确实可以工作。
解决方案
请分享你的/usr/local/bin/start_svn.sh
最初的最佳实践指南是:
- 指定每个命令的完整绝对路径。具有相对/隐式路径的命令将失败。
- 在以绝对完整路径开头的脚本中加载所有环境变量。
- 使用显式日志文件来调试脚本中的每个重要行。
推荐阅读
- c# - 如何在 C# 中使用备用凭据映射网络打印机
- javascript - 滚动时将图像从灰度变为彩色
- bash - 如何运行bash嵌套函数
- apache-flink - 集群在 statefun 上运行时是否可以添加新的嵌入式工作人员?
- node.js - 根据情况安排邮件
- postgresql - Spring 事务和 postgres(VACUUM,在事务外部运行)
- linux - 从 Jenkins 中的 Shell 触发作业
- python - 如何在不更改初始数组的情况下用零填充数组列?
- scala - scala中的案例类如何在内部工作
- angular - AuthGuard 安全性未按预期工作