当与特定服务器的网络连接可用时,会出现 Upstart 事件吗?

当与特定服务器的网络连接可用时,会出现 Upstart 事件吗?

在 upstart 中是否有一种方法可以对事件进行编码,以便在特定机器的网络连接可用时启动该事件?在我的情况下,基于 ping 结果的某些操作会起作用。如果网络中断,正在启动的任务将崩溃,因此 respawn 可以轻松启动它,但如果启动时网络连接不可用,它将挂起,upstart 将无法捕获它(如果这有助于突出用例,它是一个从本地 ffserver 流式传输到另一个 ffserver 的 ffmpeg 实例)。

答案1

如果你知道机器的 IP 地址,你可以通过以下方式确认 MAC 地址来确认它是否是“正确”的机器:

arp -an 192.168.1.123

您可能需要先 ping 它,以便 arp 可以找到它。

这是我正在使用的执行相同操作的脚本:

#!/bin/bash

ip=192.168.1.123 
mac=00:aa:bb:cc:dd:ee


if ping -c 1 -t 1 ${ip} > /dev/null && arp -an ${ip} | grep ${mac}; then
    echo "${ip} has the expected mac addy." 

    # Mount my nfs share (requires sudo, but whatever)
    mount -t nfs -o proto=tcp,port=2049 ${ip}:/ /mnt 
else
    echo "This isn't the network I'm looking for."   
fi

相关内容