1

У меня есть сценарий Python, который предоставляет RESTful-сервис (используя флеш фреймворк). Что я хотел бы сделать с этим сервисом, так это то, что он клонирует новейшую версию скрипта python, а затем запускает main.py.

Для меня ясно, что он может быть запущен на уровне инициализации 3, однако я не уверен, как именно должна быть сконфигурирована информация об инициализации, а также я не уверен, можно ли обновить crontab с помощью

sudo update-rc.d myservice enable 3

что на самом деле в скрипте myservice это что-то вроде:

#!/bin/sh
rm -fR /home/pi/myservicedir
git clone https://repo/code.git /home/pi/myservicedir
cd /home/pi/myservicedir
python main.py

1 ответ1

0

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

Кроме того, rc.local обычно запускается очень поздно в цикле загрузки. Это было бы подходящим местом для размещения вашего кода запуска. Проверьте, что значение $1 start перед запуском вашего кода.

Серверы запускаются в порядке, указанном в /etc/rc3.d . Сценарии Kill, начинающиеся с K , запускаются сначала в лексическом порядке, затем сценарии запуска, начинающиеся с S , запускаются в лексическом порядке. Если вы хотите убедиться, что все работает, используйте порядок запуска 99 .

В вашем дистрибутиве должен быть метод для установки и удаления ссылок в каталогах rc#.d . В вашем случае это выглядит как update-rc.d . Обычно это контролируется строками комментариев в верхней части скрипта init.d

Там должны быть man страницы, описывающие программы и файлы, которые вам нужны. Попробуйте запустить man update-rc.d и man -k init .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .