開機啟動 No-IP 服務

對於只有浮動 IP (沒有固定 IP) 的機器,有時候我會想把他當成 server 來用的話,
我習慣用 No-IP 的動態 DNS 服務。

以我使用 Ubuntu/Debian 的情況,安裝方式非常簡單,
只要參考官網給的資訊,一步一步設定就可以了。

但我常常會在設定完成後,忘記設定讓 No-IP 的程式開機啟動,所以在這裡記錄一下。

首先要在新增一個檔案 noip2/etc/init.d/ 下,完整的路徑是 /etc/init.d/noip2
我們可以直接編輯 noip2 這個檔案,並加入以下內容:

#! /bin/sh
# /etc/init.d/noip2

# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org>
# Updated by David Courtney to not use pidfile 130130 for Debian 6.
# Updated again by David Courtney to "LSBize" the script for Debian 7.

### BEGIN INIT INFO
# Provides:     noip2
# Required-Start: networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start noip2 at boot time
# Description: Start noip2 at boot time
### END INIT INFO

# . /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

noip2 成為可執行檔,並執行 update-rc.d

sudo chmod a+x /etc/init.d/noip2
sudo update-rc.d noip2 defaults

最後設定 systemctl 讓他開機執行。

sudo systemctl enable noip2

在找資料的時候,發現有些網友在上面這個步驟會出現這一類的 error :

update-rc.d: error: xxxx contains no runlevels, aborting.

看回文是說,在 noip2 這個檔案裡,### BEGIN INIT INFO### END INIT INFO 裡的文字不能省略?
這個沒遇過,先記錄一下。