ubuntu автозапуск приложений терминал

Автозагрузка сервисов в Ubuntu

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

Автозагрузка сервисов в Ubuntu управляется системой инициализации systemd. До недавнего времени в Ubuntu использовался UpStart, однако и она не смогла устоять перед натиском systemd.

Список всех сервисов и их статус можно посмотреть с помощью утилиты systemctl, для этого наберите в терминале (Ctrl+Alt+T):

Snimok ekrana ot 2019 04 08 16 35 02

А чтобы посмотреть список сервисов, которые сейчас выполняются, наберите такую строчку в терминале:

Snimok ekrana ot 2019 04 08 16 35 15

Аналогичным образом можно посмотреть сервисы, которые уже добавлены в автозагрузку:

Snimok ekrana ot 2019 04 08 16 35 44

Добавить сервис в автозагрузку можно с помощью опции опции enable:

sudo systemctl enable имя_сервиса

Удалить сервис из автозагрузки можно, указав опцию disable:

sudo systemctl disable имя_сервиса

Так как выполняются действия от суперпользователя, система спросит пароль. Более подробно про перезагрузку читайте в статье автозагрузка в Linux. В ней рассматривается автозагрузка сервисов в Ubuntu. Однако все эти команды будут актуальны и для других дистрибутивов, использующих эту систему инициализации Systemd.

Источник

Автозапуск через терминал

Есть скрипт (.sh), который я закидываю в терминал, чтобы запустить нужный процесс. Подскажите, пожалуйста, как настроить, чтобы при входе в систему это происходило автоматически?

[Desktop Entry]
Type=Application
Name=myscript
Exec=/home/koala/Рабочий стол/new_folder/myscript.sh
StartupNotify=false
Terminal=true
OnlyShowIn=Unity;GNOME;
NoDisplay=true
AutostartCondition=GNOME3 unless-session gnome

При входе в систему ничего не запускается. Подскажите, что сделал не так? В Линуксе полный профан. Прошу объяснять как для чайника.

58055: 1610873250

Тебе нужно его запускать во время запуска системы? Тогда можно запустить его через systemd, тогда запуск не будет зависеть от твоей DE

107727: 802502732

Если имеется в виду вот это меню https://pp.userapi.com/c824603/v824603637/2bbc5/Y-dT-VTF_ZU.jpg, то что написать в строке с командой, чтобы выбранный скрипт запускался через терминал? Или я что-то не так понял?

2300:1567075356

AutostartCondition=GNOME3 unless-session gnome

эту строку убери, тут написан бред

107727: 802502732

Может это я не понял. Что конкретно нужно? Чтобы нужная команда отрабатывала при входе? Или чтобы открывался терминал и в нем запускалась команда?

Источник

Автозагрузка Linux

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

В этой статье мы рассмотрим как работает автозагрузка Linux, как добавить программы автозагрузки, куда их будет более правильно добавить, а также какие виды автозагрузки бывают в этой операционной системы.

Как работает автозагрузка?

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

Рассмотрим основные уровни автозагрузки которые вы можете использовать:

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

Автозагрузка на уровне ядра

Автозагрузка на уровне ядра вряд ли будет вам очень полезной для повседневного применения, но я решил о ней упомянуть, поскольку такая возможность есть. С помощью параметра ядра init вы можете указать какую программу стоит запускать сразу после завершения инициализации ядра. Например, вы можете загрузить оболочку Bash вместо Systemd. Для этого достаточно подправить строку запуска ядра в конфигурационном файле Grub или во время запуска. Добавьте в конец параметр init:

sudo vi /boot/grub2/grub.cfg

linux /vmlinuz-4.8.0-22-generic root=/dev/mapper/systems-ubuntu ro quiet init=/bin/bash

Snimok ekrana iz 2017 02 23 18 20 08

Но, обычно, удобнее изменить это значение временно, в меню Grub. Читайте подробнее об этом в статье параметры ядра Linux. Так не выполняется автозагрузка программы linux, но, тем не менее, иногда может быть полезно.

Автозагрузка в системе инициализации

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

Для добавления или удаления служб из автозапуска используется команда systemctl. Чтобы добавить службу в автозапуск выполните:

sudo systemctl enable имя_службы

А чтобы отключить ее автозапуск linux:

sudo systemctl disable имя_службы

Например, если вы хотите добавить в автозагрузку Apache, то нужно выполнить:

sudo systemctl enable apache

Также вы можете проверить добавлена ли уже служба в автозагрузку:

sudo systemctl is-enabled httpd

Snimok ekrana iz 2017 02 23 18 20 48

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

Snimok ekrana iz 2017 02 23 18 25 24

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

systemctl list-unit-files | grep enabled

Snimok ekrana iz 2017 02 23 18 22 41

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

Раньше было принято размещать все скрипты, которые запускаются по умолчанию в файле /etc/rc.local. Этот файл все еще существует, но это пережиток системы инициализации SysVinit и теперь он сохраняется только для совместимости. Скрипты же нужно загружать только с помощью Systemd.

Для этого достаточно создать простой юнит-файл и добавить его в автозагрузку, как любой другой сервис. Сначала создадим этот файл:

sudo vi /lib/systemd/system/runscript.service

[Unit]
Description=My Script Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/local/script.sh
[Install]
WantedBy=multi-user.target

Осталось выставить правильные права:

sudo chmod 644 /lib/systemd/system/runscript.service

Затем обновить конфигурацию и добавить в автозагрузку Linux новый скрипт:

sudo systemctl daemon-reload
sudo systemctl enable myscript.service

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

sudo chmod u+x /usr/local/bin/script

Автозагрузка X сервера

Часто, в легких окружениях рабочего стола и оконных менеджеров для автозагрузки программ используется автозагрузка на уровне X сервера. Все запускаемые, таким образом, скрипты будут стартовать после запуска X сервера. Чтобы настроить такую автозагрузку Linux вам будет достаточно добавить путь к нужному скрипту в файл

/.xinitrc или /etc/X11/xinit/xinitrc. Синтаксис добавляемой строки таков:

exec путь_к_скрипту &

/.xinitrc еще не существует, то его нужно создать:

Затем, чтобы добавить в автозагрузку linux скрипт, отредактируйте файл так, как вам нужно. Например, будем запускать Firefox:

Snimok ekrana iz 2017 02 23 19 05 49

Готово. Осталось сохранить изменения. При следующем запуске X сервера сработает автозапуск Linux и выполняется эта команда. Таким же способом может выполняться автозапуск приложений linux.

Автозагрузка окружения рабочего стола

Такие мощные окружения рабочего стола как Gnome и KDE имеют свои приложения для автозагрузки. Например, в Gnome программа называется «Запускаемые автоматически приложения». Вы можете запустить ее из главного меню системы:

Snimok ekrana iz 2017 02 23 19 10 00

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

Snimok ekrana iz 2017 02 23 20 00 33

Чтобы добавить новую программу или скрипт в автозагрузку нажмите кнопку «Добавить»:

Snimok ekrana iz 2017 02 23 19 14 59

Тут вам нужно заполнить три поля:

Snimok ekrana iz 2017 02 23 19 17 35Дальше нажмите «Добавить» ваша программа появится в списке. При следующей загрузке системы, будет выполняться автозагрузка программ linux.

Автозагрузка Bash

/usr/bin/local/script
export MYWAR=test

Здесь вы можете запускать на выполнение любые скрипты или команды. Часто такой подход используется для создания псевдонимов команд, объявления новых переменных и собственных функций.

Выводы

В этой статье мы рассмотрели добавление в автозагрузку linux, а также как работает автозагрузка и ее виды. Конечно, существует множество других файлов, куда бы вы могли пристроить свой скрипт, но это будет неправильно. Нужно использовать только предназначенные для этого методы, хотя бы потому, чтобы потом не забыть. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Автозагрузка в Ubuntu

Рассмотрим два варианта автозагрузки программ или скриптов в Ubuntu. Через графический интерфейс и с использованием файла rc.local. В предыдущих версиях автозагрузка в Ubuntu работала именно через файл rc.local, однако в последних версиях её отключили. Мы включим данную возможность.

Автозагрузка через графический интерфейс

Автозагрузка через графический интерфейс настраивается в приложении Startup Application. Заходим в приложения (пункт 1) и запускаем Startup Application (пункт 2)

menu startup application

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

startup application preferences 1

Нажимаем Add для добавления программы в автозагрузку. Пишем название программы и указываем путь к ней. Для теста я добавил в автозагрузку игру mahjongg.

edit startup program

Нажимаем Save и перезагружаем компьютер. Игра Mahjongg должна запуститься при входе в систему.

Как включить rc.local

Создаем файл rc.local

Добавляем в него содержимое:

Делаем файл исполняемым:

Включение rc.local в автозагрузку

enable rclocal

mkdir

Сохраняем файл и перезагружаемся. При старте системы будет создана папка testdir в /tmp/

Про автозагрузку в Ubuntu я записал видео с примерами по каждому из способов.

Источник

Автозагрузка в Ubuntu

В Убунту есть 2 основных уровня автозапуска — в системе инициализации systemd и в рабочем окружении. Для пользовательского софта автозагрузка в Ubuntu может быть настроена в удобной графической утилите. Добавить в автозапуск можно программу или собственный скрипт.

Автозагрузка в Ubuntu

Актуальная Ubuntu 18.04 по умолчанию в качестве рабочего окружения использует GnomeShell. Для настройки автозапуска в этой версии ОС нужно:

image009

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

image011

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

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

Кроме конкретного софта, добавить в автозагрузку Linux легко и самописный скрипт, чтобы оптимизировать работу за компьютером. Для этого необходимо:

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

Этот способ подойдет и для автозагрузки на UbuntuServer, где нет графики.

Отсрочка автозапуска программ в Ubuntu

Если программ в автозагрузке Убунту очень много, их необходимо подгружать в определенном порядке или запускать спустя какое-то время после загрузки системы — поможет функция отсрочки. Для ее активации используется unix-утилита sleep. Воспользоваться возможностями этого инструмента можно в уже знакомой программе «Автоматически запускаемые приложения». Для этого нужно:

где цифра после слова «спать» равна количеству секунд, которое приложение бездействует сразу после старта системы, перед тем как запуститься. Между данной формулой, в конце которой обязательна точка с запятой, и командой на запуск приложения, должен быть пробел.

В приведенном примере отложенной автозагрузки программ в Ubuntu приложение остается в состоянии «сна» 2 минуты, прежде чем открыться. Например, запуск через полчаса после старта ОС будет выглядеть как sleep 3h «имя программы». Пример, в котором Transmission запускается через 1 час:

Аналогичным образом можно добавить в автозагрузку в Linux отсроченное выполнение пользовательского скрипта или запуск медиафайла.

Удаление из автозапуска Ubuntu

Чтобы убрать софт из автозагрузки Ubuntu, можно воспользоваться одним из 2 способов: через «Автоматически запускаемые приложения» или вручную. В первом случае достаточно запустить утилиту, выделить нужную программу и нажать «Удалить». Простое снятие галочки отключается программа, и она не будет запускаться при старте системы.

Заключение

Автозагрузка в Ubuntu имеет множество способов тонкой настройки. Ее возможности трудно охватить. Грамотное использование этого инструмента делает ОС Linux практичнее в повседневных задачах.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • ubuntu software не устанавливает приложения
  • ubuntu software не показывает приложения