Я впервые работаю с выскочкой и использую 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