Ну, я знаю, что для одного скрипта вопрос заключается в том, чтобы просто поместить соответствующий файл в каталог /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 .
