Upstart 未运行我的动态 DNS 脚本

Upstart 未运行我的动态 DNS 脚本

我有一个动态 DNS 脚本如下:

#!/bin/bash
curl -kL# "http://example.com/updatedns.php"
echo $? >> /var/log/ddns

...保存到 /usr/local/bin/ddns。显然上面的 URL 不是我实际使用的 URL,但该 URL 旨在将我的域的 A 记录设置为请求它的机器的 IP。我已确认它已被 chmodded 并从命令行运行,但是,Upstart 已使用以下脚本进行设置:

start on network started
exec /usr/local/bin/ddns

...在网络启动时不执行它(我假设是在机器启动时或我连接网线时)。

在网络上搜索开始并发现一些结果表明此节实际上没有正确启动,但仍被触发,但我不确定这是否相关。我做错了什么吗?我正在运行 Ubuntu Server 11.10。

答案1

传统(新兴之前,并且仍然有效)的方法是将脚本放在/etc/network/if-up.d目录中。

请注意,Ubuntu 已预先打包了 DynDNS 更新脚本:我可以看到dyndnsddclientinadynez-ipupdateipcheck已打包在 Ubuntu 中。全部都可以使用 :)

答案2

grep 'emit' /etc/network/if-up.d/upstart -a5

建议您应该使用start on net-device-up

如果您有多个 det 设备(并且都没有网关),您可以在末尾添加一个参数,如下所示:

start on net-device-up IFACE=eth0

相关内容