Ну, я знаю, что для одного скрипта вопрос заключается в том, чтобы просто поместить соответствующий файл в каталог /etc/rc.local
, верно? Но что, если этот сценарий зависит от других файлов (например, нескольких сценариев и нескольких текстовых файлов)? Что я должен сделать, чтобы не создавать беспорядок в этой папке?
2 ответа
Если под зависимостью вы подразумеваете, что он использует и / или вызывает их, это не должно иметь значения. Вы можете просто добавить строку в конец файла rc.local в качестве команды для вызова основного скрипта, и она должна просто работать.
Существует альтернатива rc.local, по крайней мере, для настольных версий. Вы можете использовать Startup Applications
, чтобы добавить в него свой скрипт. Разница между этими двумя методами, отличная от CLI и версии GUI для добавления, заключается в том, что сценарии rc.local запускаются как ROOT, а запускаемые приложения - как пользователь.
редактировать
Из комментариев ваша проблема становится понятнее. Кажется, что скрипт использует относительные пути для доступа к зависимости, которая, я думаю, не является кодом. Рабочим каталогом вышеупомянутых двух методов является /root/
или /home/<user name/
, поэтому зависимости не загружаются.
Самое простое исправление для cd
- диска в папку перед запуском сценария питона. Любой из них должен работать:- Используйте cd /home/..../.../ && python perdc_task.py
в качестве команды в любом из этих двух методов.
- Если это не сработает, создайте сценарий (должен делать .sh
), который вызывает указанную выше команду, и вызовите этот сценарий двумя вышеуказанными методами.
Более элегантный способ сделать это - создать cd
из скрипта Python , программно определяя его путь, или использовать указанный выше путь для доступа к зависимостям по абсолютному пути.
Edit2
Ubuntu, возможно, отошел от rc.local в пользу выскочки. Попытайтесь понять, работает ли использование upstart, как в этом вопросе, для вас.
Если у вас включен cron
(что необходимо), есть специальная команда @reboot
которая запускается при запуске. Я не уверен, что это работает на холодных ботинках, но из того, что я вижу, это делает.
Если это работает, вы просто пишете скрипт, помещаете его в какой-то чистый и организованный каталог, а затем вызываете его через cron
.