Я добавил простую строку:
python <path-to-my-script> &
к/etc/rc.local, но я заметил, что после миграции от одного хоста до другого, сценарий иногда перестал работать.
Я использую KVM, VM's находятся под Ubuntu 12.04 32 бита. Хост имеет Ubuntu 12.04 64 бита, и я использую Живую Миграцию (частное облако, созданное с OpenStack).
Я не знаю, что это - отказ KVM/LIBVIRT, или возможно я делаю что-то не так на Ubuntu, или возможно это - отказ облачного программного обеспечения?
Это мог быть отказ rc.local? Есть ли что-то, что я должен для знания, когда я использую rc.local, и это может быть причина этого поведения?
Попробуйте добавить 10-секундную паузу перед командой сценария. Иногда rc.local запускается слишком рано ....
Пример:
...
# By default this script does nothing.
sleep 10
python <path-to-my-script> &
exit 0
Вы должны сначала проверить, не происходит ли сбой вашей программы. Самый простой способ сделать это - перенаправить вывод в файл и проверить его позже (не стесняйтесь заменить /myprogram.log на что-то другое):
python <path-to-my-script> &>/myprogram.log &
Кроме того, проверьте, что rc.local
имеет следующая строка в конце
exit 0
и она исполняемая. Вы можете проверить это с помощью ls -la /etc/rc.local
. Он должен отображать что-то вроде этого:
ls -la /etc/rc.local
-rwxr-xr-x 1 root root 629 Aug 10 19:41 /etc/rc.local
Если это не так, вы можете сделать его исполняемым, выпуская sudo chmod +x /etc/rc.local
.