我想noip.com
在启动时启动 dyndns 客户端,并使用提供的 debian.noip2.sh 脚本(它可以从 shell 正常启动客户端)。我将其复制到/etc/init.d
,使其归 root 所有并授予其755
权限。现在,当我想安装它时,我得到:
# update-rc.d debian.noip2.sh defaults
insserv: warning: script 'K01debian.noip2.sh' missing LSB tags and overrides
insserv: warning: script 'debian.noip2.sh' missing LSB tags and overrides
insserv: warning: script 'noip' missing LSB tags and overrides
insserv: script virtualbox: service vboxdrv already provided!
insserv: script virtualbox: service virtualbox already provided!
脚本如下:
# cat /etc/init.d/debian.noip2.sh
#! /bin/sh
# /etc/init.d/noip2.sh
# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <[email protected]>
# corrected 1-17-2004 by Alex Docauer <[email protected]>
# . /etc/rc.d/init.d/functions # uncomment/modify for your killproc
DAEMON=/usr/local/bin/noip2
NAME=noip2
test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting dynamic address update: "
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
stop)
echo -n "Shutting down dynamic address update:"
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
echo "noip2."
;;
restart)
echo -n "Restarting dynamic address update: "
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
我该如何修复这个问题?
答案1
我该如何修复这个问题?
把它彻底扔掉。你不需要它的任何形式。
那么就不要再尝试使用rc
Ubuntu 上已经被两次取代的系统了。你也不需要update-rc.d
在这里。
现在是 2016 年,迁移到 systemd 的第一条规则适用。有人已经这样做了。在这个特定情况下,迈克尔·尼基托奇金 (Michael Nikitochkin) 一年前就做到了其中包括(例如杰伦·道根,糖化白细胞介素, 和一些无名的人):
[单元] 描述=NOIP 动态 IP 文档=https://askubuntu.com/a/835318/43344 [服务] ExecStart=/usr/local/bin/noip2 [安装] WantedBy=多用户.目标
进一步阅读
答案2
首先,您需要创建一个 systemd 启动脚本:
debian.noip2.service
并将其放入/etc/systemd/system/
目录中。
此类 systemd 启动脚本的一个示例如下:
[Unit]
After=network.target
[Service]
ExecStart=/usr/local/bin/debian.noip2.sh
[Install]
WantedBy=default.target
After:指示 systemd 何时运行脚本。在我们的例子中,脚本将在网络启动后运行。
ExecStart:此字段提供要执行的实际脚本的完整路径。
WantedBy:systemd 单元应安装到哪个启动目标中
配置和安装:
打开终端并运行:
exec sudo -i
cp debian.noip2.sh /usr/local/bin/
chmod 744 /usr/local/bin/debian.noip2.sh
chmod 664 /etc/systemd/system/debian.noip2.service
systemctl daemon-reload
systemctl enable debian.noip2.service