为什么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 

资源