Назад | Перейти на главную страницу

ec2 выскочка, что такое команда `start on` для ожидания сети

Я впервые работаю с выскочкой и использую EC2.

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

Я не могу запустить следующий скрипт, ожидая запуска сети. Будет работать, если использовать стандартные

 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

Любые предложения были бы признательны

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 

Ваш пример действительно близок.

Amazon Linux называет свой сетевой сервис network. Поэтому, если приложение / служба, которыми вы пытаетесь управлять с помощью выскочки, требует сетевого подключения, сделайте следующее:

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

Ты не необходимость биты уровня выполнения, но неплохо иметь возможность ограничить запуск службы в зависимости от среды уровня выполнения.

Upstart - это система, основанная на событиях. Чтобы ваша работа выполнялась на правильном этапе, может потребоваться дождаться определенных событий, генерируемых другим запуском (-ями).

Возможные решения будут отличаться от системы к системе и будут зависеть от того, как определены новые задания и какие события они вызывают. Это также может зависеть от версии выскочки, установленной в системе.

Обратите внимание, что выскочка может не записывать журналы в /var/log/upstart. Более ранние версии могут использовать syslogd в то время как более новые с большей вероятностью будут писать журналы в /var/log/upstart.

Нижеприведенное решение будет работать только с типом системы, упомянутой в вопросе:

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

В этой системе выскочка не регистрировала работу echo заявления где угодно. Поэтому для этой части может потребоваться дополнительная настройка.

Определение должности:

description "testjob"

start on started elastic-network-interfaces

script
        echo $(ping -c 1 serverfault.com) > /var/log/testjob.log
end script

Протестируйте на реальном экземпляре 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