ec2暴发户,等待networking的“开始”命令是什么

这是我第一次和暴发户一起使用EC2。

os/upstart = aws base AMI latest version - upstart-0.6.5-13.3.13.amzn1.x86_64

在等待networking启动时,我无法启动以下脚本。 它将工作,如果使用标准

  start on runlevel [2345] stop on runlevel [!2345] 

我也尝试了各种组合

 start on filesystem and net-device-up IFACE=eth0 start on filesystem and net-device-up IFACE!=lo 

任何build议将不胜感激

 description "test for on network start" start on (started network-interface or started network-manager or started networking) stop on (stopping network-interface or stopping network-manager or stopping networking) script touch /home/ec2-user/myFile.txt end script 

Upstart是一个基于事件的系统。 为了让你的工作在正确的阶段执行,可能需要等待其他启动工作发出的特定事件。

可能的解决scheme会因系统而异,并取决于新贵职位的定义以及他们发出的事件。 它也可能取决于系统上安装的新贵版本。

请注意,新贵可能不会将其日志写入/var/log/upstart 。 较早的版本可能使用syslogd而较新的版本更可能将日志写入/var/log/upstart

下面的解决scheme只适用于问题中提到的系统types:

 os/upstart = aws base AMI latest version - upstart-0.6.5-13.3.13.amzn1.x86_64 

在这个系统上,新贵没有在任何地方logging工作echo 。 所以这部分可能需要额外的configuration。

工作定义:

 description "testjob" start on started elastic-network-interfaces script echo $(ping -c 1 serverfault.com) > /var/log/testjob.log end script 

testing一个真正的EC2实例:

 # cat /var/log/testjob.log PING serverfault.com (198.252.206.140) 56(84) bytes of data. 64 bytes from stackoverflow.com (198.252.206.140): icmp_seq=1 ttl=51 time=72.9 ms --- serverfault.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 73ms rtt min/avg/max/mdev = 72.950/72.950/72.950/0.000 ms 

你的例子真的很接近。

亚马逊Linux呼叫他们的networking服务network 。 因此,如果您试图用暴发户控制的应用程序/服务需要networking连接,请执行以下操作:

 start on (runlevel [345] and started network) stop on (runlevel [!345] or stopping network) 

不需要运行级别的位,但是根据运行级别环境,能够限制服务运行并不是一个坏主意。