我刚刚在全新的 Ubuntu 12.04 上安装了 No-IP。当我从 CLI 启动该程序时,它启动正常,但如果我尝试使此启动脚本工作,它就不会启动。
我从他们的安装说明中获得了这个脚本:
#! /bin/sh
# . /etc/rc.d/init.d/functions # uncomment/modify for your killproc
case "$1" in
start)
echo "Starting noip2."
/usr/local/bin/noip2
;;
stop)
echo -n "Shutting down noip2."
killall -TERM /usr/local/bin/noip2
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
CL 是正确的,因为如果我运行/usr/local/bin/noip2
它,它就会启动。但脚本本身不会启动它。
我哪里做错了?该脚本是可执行的:
-rwxrwxrwx 1 root root 299 Jan 12 13:28 noip*
编辑
如果我尝试 Init.d 脚本,它也能起作用:
sudo /etc/init.d/noip start
这样它就可以顺利启动,没有任何故障。
答案1
您应该运行这个(如果您还没有这样做的话):
sudo update-rc.d noip2 defaults
答案2
这很简单,我在 root crontab 中创建了一行:
@reboot /usr/local/bin/noip2
当我打开或重新启动机器时,守护进程会自动启动
答案3
除了:
sudo update-rc.d noip2 defaults
您还应该设置以下权限:
chmod 755 /etc/init.d/noip
然后你应该能够启动和停止。在 Ubuntu 14.04 LTS 上测试
答案4
您是否从任何 /etc/rc?.d 目录符号链接到 /etc/init.d 脚本?我有
/etc/rc0.d/K10no-ip.com -> ../init.d/no-ip.com.sh*
/etc/rc1.d/K10no-ip.com -> ../init.d/no-ip.com.sh*
/etc/rc2.d/S90no-ip.com -> ../init.d/no-ip.com.sh*
/etc/rc3.d/S90no-ip.com -> ../init.d/no-ip.com.sh*
/etc/rc4.d/S90no-ip.com -> ../init.d/no-ip.com.sh*
/etc/rc5.d/S90no-ip.com -> ../init.d/no-ip.com.sh*
/etc/rc6.d/K10no-ip.com -> ../init.d/no-ip.com.sh*