автозапуск скрипта python ubuntu

Как добавить скрипт в автозагрузку Ubuntu

Иногда возникает необходимость выполнить свой скрипт во время загрузки системы. Например, чтобы запустить определенную программу, поменять настройки разрешения экрана или выполнить обновление необходимой программы.

Сделать это можно несколькими способами. С помощью графической оболочки или с помощью системы инициализации systemd, которая используется сейчас практически во всех дистрибутивах.

Автозагрузка с помощью стандартной утилиты Ubuntu

Создайте скрипт в удобном месте и сделайте его выполняемым:

sudo gedit /путь_к_скрипту/имя_скрипта.sh

#!/bin/bash
echo «Hello world»

Наш скрипт просто выводит строчку Hello world на экран, более подробно о создании скриптов читайте в статье написание скриптов на Bash. Когда скрипт будет готов, сделайте его исполняемым:

sudo chmod ugo+x /путь_к_скрипту/имя_скрипта.sh

Запустите утилиту Автоматически запускаемые приложения в главном меню системы:

Нажмите кнопку Добавить и в поле Команда введите полный путь к файлу вашего скрипта или выберите его с помощью кнопки Обзор, затем нажмите Добавить:

Скрипт будет выполнен после загрузки графической оболочки Ubuntu.

Автозагрузка скриптов Linux в systemd

Создайте файл сервиса systemd с помощью следующей команды:

Добавьте в него такое содержимое:

[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/полный/путь/к/скрипту/имя_скрипта.sh
[Install]
WantedBy=multi-user.target

В строчке ExecStart можно прописать либо путь к скрипту, который надо выполнить, либо саму команду. Теперь добавьте этот скрипт в автозагрузку:

sudo systemctl daemon-reload
sudo systemctl enable mysrcipt

Источник

Как запустить python скрипт на ubuntu чтобы он не отключался?

Вариантов много, вот то, что придумал с ходу:

1. Запустить скрипт в bash с nohup.
2. Запускать скрипт в сессии tmux и просто детачиться из неё. Сессия продолжит работать. Это всё тот же ручной запуск скрипта.
3. Создать сервис systemd.
4. Запускать в фоне с помощью supervisor.

Если нужно, чтобы скрипт работал и запускался без участия человека, то варианты 3 и 4.

Systemd конечно оч. хорошо, но и Supervisor прекрасно справляется с такими задачами.

Я, например, и многие мои собратья по Проксе-Пепсика (на Python3) запускаем её, как раз через Supervisor, что весьма удобно.

Всё просто.
Сначала устанавливаете его:
sudo apt install supervisor

Если этого не сделать, то в папке /etc/supervisor будет лежать очень урезанный и бедный на настройки supervisord.conf файл и многие параметры придётся дописывать руками!

Судите сами:
— это урезанный файл после установки Supervisor

— а это полный файл со всеми параметрами, после его создания командой

Можно все настройки сделать в этом файле, но это не очень хороший тон!

Там же, в папке /etc/supervisor, после его (Supervisor) установки создаётся папка conf.d.
Полный путь:
/etc/supervisor/conf.d

Вот в неё-то, по правилам хорошего тона и ложат на каждый сервис/процесс отдельный Воркер/Юнит, в котором и прописывают запуск Python2/3 скрипта.
В моём случае:

Для примера, мои:
— конфигурационный файл supervisord.conf
— Воркер в /etc/supervisor/conf.d

Апосля всех правок конфигурационного файла и создания Воркера, обязательно перезапуск Supervisor:

И усё.
После каждого старта системы, всё будет работать.

Веб-морда Supervisor по адресу:
(доступна при условии, что у вас установлен веб-сервер)
http://localhost:9001/

Dr. Bacon, мне накидать вам холиваров о systemd, чтобы вам угодить?!
Также могу накидать холиваров и про Supervisor.

У Supervisor есть свои преимущества и Systemd по своему хорош и это тот самый случай, когда надо начинать мериться 3,14сюнами, у кого круче?!

Читайте также:  папка скриптов red dead redemption 2 где находится

Как вариант Supervisor и он нисколько не хуже Systemd.

Источник

Запуск Python и python-скрипт на компьютере

Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.

В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.

Где запускать Python-скрипты и как?

Python-код можно запустить одним из следующих способов:

Запуск Python-кода интерактивно

Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.

Вот как запустить интерактивный режим в разных ОС.

Интерактивный режим в Linux

Откройте терминал. Он должен выглядеть приблизительно вот так :

После нажатия Enter будет запущен интерактивный режим Python.

Интерактивный режим в macOS

На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.

Интерактивный режим в Windows

Запуск Python-скриптов в интерактивном режиме

В таком режиме можно писать код и исполнять его, чтобы получить желаемый результат или отчет об ошибке. Возьмем в качестве примера следующий цикл.

Для выхода из интерактивного режима нужно написать следующее:

И нажать Enter. Вы вернетесь в терминал, из которого и начинали.

Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.

Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.

Как выполняются Python-скрипты?

Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.

При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.

Но и это еще не все.

Блок-схема выполнения кода интерпретатором

Это набор инструкций, которые приводят к финальному результату.

Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.

Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.

Как запускать Python-скрипты?

Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.

Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:

Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.

Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):

После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:

Теперь можно писать код и с легкостью сохранять его прямо в командной строке.

Как запускать скрипт в командной строке?

Источник

Читайте также:  все анимации в роблокс скрипт

Автозапуск скрипта python ubuntu

Re: скрипт python в автозапуск

Все работает, но хотелось бы чтобы этот скрипт запускался сам при включении распберри пи.
Помогите советом как это сделать плиз[/quote]

Есть несколько способов поставить в автозагрузку на выбор:
1.Если у тебя стартуют иксы то тогда проще в /etc/xdg/autostart создать выражаясь терминологиями M$ ярлык на файлик

Re: скрипт python в автозапуск

Re: скрипт python в автозапуск

Re: скрипт python в автозапуск

Re: скрипт python в автозапуск

Друзья, прошу помочь!

Пишу скрипт на python, использована предложенном решение, прописал его в автозапуск. Проблема в том, что я не использую GUI и стартует оболочка только после ввода startx, а мой скрипт почему-то не хочет работать до запуска GUI.

Подскажите пожалуйста, куда мне копать?

Re: скрипт python в автозапуск

Re: скрипт python в автозапуск

Нужно, чтобы скрипт запускался при загрузке малинки, не дожидаясь запуска GUI.

Я новичек и в линуксе и в пайтоне, и не понимаю, почему моя программа работает только после ввода startx в консоли.

Re: скрипт python в автозапуск

Добро пожаловать в линукс)
При надобности, в линуксе можно управлять последовательностью автозагрузки.
Для этого нужно прописать свой скрипт в загрузку командой:
sudo update-rc.d имя_скрипта defaults

А можно тупо по старинке прописать свой скрипт в /etc/rc.local перед «exit 0»
Если пусть нестандартный, то прописывать полностью.

А файлы «имя.desktop» с прописанным в нутри «Exec=/путь/мой_скрипт» в

/.config/autostart
запускаются десктопным менеджером, в данном случае LXDE, у openbox-a другая система автостарта.

Re: скрипт python в автозапуск

Re: скрипт python в автозапуск

Я прописал программу в автозагрузку, но она не стала запускаться, ругаясь на невозможность загрузки некоторых модулей (см. скрин: https://yadi.sk/i/fZkOreh3Vsmfn )

Подскажите пожалуйста, что я делаю не так?

Re: скрипт python в автозапуск

Re: скрипт python в автозапуск

Спасибо всем за Ваши советы!

Запустить программу без компилятора так и не получилось, а вот новый скрипт с одной строкой вызова моей основной программы система приняла. Т. ч. все заработало!

Помимо этого, Вы помогли мне немного разобраться в линухе, дав направление, где мне копать. Еще раз спасибо Вам всем за Вашу помощь!

Re: скрипт python в автозапуск

Всем доброго времени суток!
Пишу небольшой скрипт на python, с котором хотелось бы общаться через терминал. Затем добавил его в автозагрузку.
При запуске Raspbian после запуска рабочего стола мой скрипт выполняется 2 раза подряд (есть запись в log файле). Причем при первом запуске он не открывает терминал, а при втором запуске- открывает терминал.
Здесь привел условный пример скрипта, загружающий одно ядро на 100%
С raspberry работаю через VNC терминал. Если послать команду CTRL+ALT+DEL, то в списке процессов есть 2 Команды: python, каждый с загрузкой системы по 25%, что логично с учётом скрипта

Собственно вопрос: почему так происходит и как сделать что-бы скрипт запускался один раз?

Источник

Автозапуск скрипта

Доброго времени суток.

Имеется скрипт. Если запускать вручную, всё отлично. Однако если его поместить в автозагрузку, желаемый результат не наблюдается.

Пожалуйста, подскажите, что в моих действиях неверно.

Что за дистрибутив-то? И почему суффикс cfg, а не sh? Вангую, у тебя systemd, а там rc.local не работает.

Читайте также:  php запустить python скрипт

ОП, и поставь /bin/bash вместо sh, чисто на всякий.

Я новичок, сильно не пинайте. =)

Пакета systemctl нет. То бишь не прованговалось.

Сейчас ещё погуглил.

. и кое-что мне стало уже понятнее:

Т.е. команды в rc.local выполняются до загрузки иксов (судя по ошибке), соответственно мой скрипт (изменение чувствительности мыши) просто выполнялся вхолостую.

Не подскажите, как выполнять скрипты в определённый момент и как понять когда код уже можно выполнять для определённых задач?

В этой теме описал просто тренировочную для себя задачу на десктопе. А вообще основная задача в следующем: имеется удалённый сервер, на котором необходима автозагрузка висги-сокета.

Запуск вручную также прекрасно работает. А вот с автозагрузкой у меня пока не лады. =(

Ну тогда рассказывай как у тебя закускаются X-ы, какой у тебя WM/DE

Ввиду неопытности вопрос «как запускаются иксы» мне не понятен. =/

На декстопе родная, без виртуалки:

На удалёнке виртуалка OpenVZ от хостера.

В смысле айдишники висги-процессов интересуют? Вот, пожалуйста:

-rwxr-xr-x 1 1000 1000 231 Jun 13 14:22 /usr/sbin/mouse.cfg

смени 1000 на root

что вообще за mouse.cfg?

С вами тут пообщаться, много нового узнаешь. =)

Да, понимаю, в Linux есть несколько слоёв, в которых реализуется автозагрузка чего бы то ни было.

Да, в моём случае на десктопе действительно требуется загрузка лишь после запуска иксов.

Далее поэксперементировал с этими вещами.

Файла не было, создал.

Далее попробовал уровень выше (т.е. непосредственно старт иксов, про который ты написал):

Ещё погуглив в wiki арча вычитал способ ч/з xinitrc.d, т.е. скрипт просто помещается в упомянутую директорию: /etc/X11/xinit/xinitrc.d/mouse.cfg.sh

Этот вариант у меня также не сработал.

Вроде бы всё просто, но что-то у меня не так. Может быть Я где-то ошибку допустил. Не может такого быть, чтобы это не работало.

Ещё ты пишешь про средства конкретного WM/DE. У меня Cinnamon и в ней есть такая штука как Startup Applications Preferences, ч/з которую можно скрипты в автозагрузку добавлять. Да, этот способ работает, но это как раз-таки возможности DE, которой на удалённой машине нет. Очень хотелось бы понять как можно реализовать автозагрузку без помощи DE, т.к. в конечном счёте требуется запуск висги-сокета для работы веб-сервака.

в конечном счёте требуется запуск висги-сокета для работы веб-сервака.

Прекрати заниматься онанизмом и осиль документацию к дистрибутиву. В ubuntu есть uwsgid. В твоём раче тоже, скорее всего, есть подобное, ну почитай Вику что ли.

Да Вы успокойтесь, не надо так переживать. Всё уже давно прочитано здесь и здесь, остался лишь момент с автозагрузкой. Хотите/можете помочь, буду рад. Зашли потроллить, ок, мы рады за вашу невъ***нность, идите дальше.

Никто не переживает, кроме тебя. Тролли, ему, видите ли, мерещатся уже. Ты уж решись, что и на каком этапе тебе «автозагружать» надо, а мы скажем, почему это ненужно что ты делаешь не так.

Если вам нужно загружать что-то, что работает с X, то делать это нужно средствами DE, а если то, что не работает — средствами системы инициализации (upstart в Ubuntu).

Источник

Онлайн платформа