我想在启动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
我该如何解决这个问题?
完全扔掉它。你不需要它以任何形式。
然后停止尝试使用
rc
在 Ubuntu 上已被两次取代的系统。你也不需要update-rc.d
这里。现在是 2016 年,适用于迁移到 systemd 的第一条规则。有人已经这样做了。在这种特殊情况下,Michael Nikitochkin 在一年前就这样做了,其中包括(例如Jeroen Doggen、Efstathios Iosifidis和一些无名的人):
进一步阅读
首先,您需要创建一个 systemd 启动脚本:
并将其放入
/etc/systemd/system/
目录。此类 systemd 启动脚本的一个示例如下:
之后:指示 systemd 何时应该运行脚本。在我们的例子中,脚本将在网络启动后运行。
ExecStart:此字段提供要执行的实际脚本的完整路径。
WantedBy:应该将 systemd 单元安装到哪个引导目标中
配置和安装:
打开终端并运行:
资源