У меня есть скрипт python, который я хотел бы запустить при запуске экземпляра ubuntu ec2, но у меня возникают проблемы.
Сценарий работает в цикле и заботится или завершает работу, когда он готов, поэтому мне не нужно запускать или останавливать его после его запуска.
Я читал и пробовал много подходов с разной степенью успеха и, честно говоря, не понимаю, какой подход лучше всего. Я попытался поместить сценарий оболочки, который запускает сценарий python в /etc/init.d, сделав его исполняемым и выполнив update-rc.d, чтобы попытаться запустить его, но он терпел неудачу на каждом этапе.
вот содержимое сценария, который я пробовал:
#!/bin/bash
cd ~/Dropbox/Render\ Farm\ 1/appleseed/bin
while :
do
python ./watchfolder18.py -t ./appleseed.cli -u ec2 ../../data/
done
я тогда сделал
sudo chmod +x /etc/init.d/script_name
sudo sudo update-rc.d /etc/init.d/script_name defaults
Кажется, это не запускается при запуске, и я не понимаю, почему, если я запускаю команду вручную, она работает так, как ожидалось.
Я также попытался добавить строку в rc.local для запуска скрипта, но это тоже не работает.
Может ли кто-нибудь поделиться тем, что они нашли, это самый простой способ запустить скрипт Python в фоновом режиме с аргументами при запуске экземпляра ec2.
ОБНОВИТЬ: ----------------------
С тех пор я переместил этот код в файл с именем /home/ubuntu/bin/watch_folder_start
#!/bin/bash
cd /home/ubuntu/Dropbox/Render\ Farm\ 1/appleseed/bin
while :
do
python ./watchfolder18.py -t ./appleseed.cli -u ec2 ../../data/
done
и изменил мой файл rc.local
на это:
nohup /home/ubuntu/bin/watch_folder_start &
exit 0
Что работает, когда я вручную запускаю rc.local, но не срабатывает при запуске, я сделал chmod +x rc.local
, но это ничего не изменило,