为什么update-rc.d不接受我的init脚本
我想在启动时启动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 # corrected 1-17-2004 by Alex Docauer # . /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
我如何解决这个问题?
我如何解决这个问题?
把它扔掉。 你不需要任何forms。
然后停止尝试使用已在Ubuntu上两次取代的rc
系统。 你也不需要update-rc.d
。
现在是2016年,迁移到systemd的第一条规则适用。 有人已经做到了。 在这个特殊情况下, Michael Nikitochkin一年前做过这件事 ,其中包括Jeroen Doggen , Efstathios Iosifidis和一些无名人士 :
[单元] 描述= NOIP动态IP 文档= HTTPS://askubuntu.com/a/835318/43344 [服务] ExecStart =在/ usr / local / bin目录/ noip2 [安装] WantedBy = multi-user.target
进一步阅读
首先,您需要创建一个systemd启动脚本:
debian.noip2.service
并将其放入/etc/systemd/system/
目录。
此类systemd启动脚本的一个示例如下:
[Unit] After=network.target [Service] ExecStart=/usr/local/bin/debian.noip2.sh [Install] WantedBy=default.target
之后:在运行脚本时指示systemd。 在我们的例子中,脚本将在网络启动后运行。
ExecStart:此字段提供要执行的实际脚本的完整路径。
WantedBy:应该安装系统单元的引导目标
配置和安装:
打开终端并运行:
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
资源