Bfsoft.ru

Программы, сервисы, полезные советы о компьютере и интернете
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как настроить автозапуск приложений и сервисов в Ubuntu

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

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

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

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

  1. Нажать на кнопку «Обзор» в левом верхнем углу экрана.
  2. Начать вводить в строку поиска «Автоматически запускаемые приложения» и запустить найденную утилиту.
  3. Далее кликнуть по кнопке «Добавить», чтобы внести желаемое приложение в автозагрузку.
  4. Заполнить поля «Имя» (название программы — как удобно) и «Команда» (та, которую вводят в консоли для запуска этого софта). Поле «описание» необязательное, сюда разрешено вписать любой комментарий.

    Пример добавления Transmission в автозагрузку в Линукс показан на скриншоте:
  5. Нажать кнопку «Добавить».

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

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

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

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

    Сделать скрипт исполняемым с помощью команды:

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

    Открыть терминал и выполнить команду:

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

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

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

  1. Открыть окно параметров запускаемых приложений.
  2. Выделить курсором программу, автозапуск которой необходимо отсрочить, и воспользоваться кнопкой «Изменить».
  3. В строке «Команда» перед имеющеюся записью внести:

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

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

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

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

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

Ручной способ подразумевает использование папки autostart в Ubuntu. Она расположена по адресу /home/имя пользователя/.config/autostart/ (чтобы увидеть эту скрытую папку, следует открыть домашний каталог в файловом менеджере и нажать одновременно клавиши Ctrl+H). В ней лежат файлы с расширением .desktop для каждой программы из автозапуска, формирующиеся автоматически при добавлении через графическую утилиту. Достаточно удалить файл, чтобы программа больше не открывалась при включении компьютера.

Заключение

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

Как автоматически запускать приложения при входе в систему?

Как сделать так, чтобы приложение автоматически запускалось после входа в систему?

14 ответов

14.04 и позже

Откройте Dash и найдите «Startup Applications»

введите описание здесь

Теперь нажмите » Добавить» и введите команду для запуска приложения. Это можно найти в главном меню, если оно установлено (см. Ниже) или как показано в этом вопросе.

введите описание здесь

Использование главного меню ( alacarte )

Сначала откройте программу «Главное меню» (введите Menu в тире)

введите описание здесь

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

введите описание здесь

Теперь обратите внимание на команду для этой программы.

введите описание здесь

Не GUI подход

Опытные пользователи могут захотеть поместить файл.desktop в

/.config/autostart запускать приложения после входа пользователя. Это может иметь следующее содержание:

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

введите описание здесь

И Unity, и Xfce4 имеют программы с графическим интерфейсом, которые позволяют вам контролировать запуск приложений.

введите описание здесь

введите описание здесь

Для Xfce4 Startup доступен инструмент «Настройки»> «Сеанс и запуск».

введите описание здесьИзображение предоставлено Xubuntu Geek xubuntugeek

Если графический интерфейс не то, что вы хотите, и вы хотите более расширенный контроль, то вы можете поставить .desktop файлы в

/.config/autostart/ каталог для Xfce4, и .desktop файл в

/.config/autostart Unity для запуска приложений после входа пользователя.

Проверьте этот вопрос, чтобы получить больше помощи при создании .desktop файлы:

  • Как я могу редактировать / создавать новые элементы запуска в Unity вручную?

Также обратите внимание, что если вы хотите, чтобы запускаемое приложение запускалось только в XFCE, но не в Unity, вы должны поставить строку OnlyShowIn=XFCE в .desktop файл. это OnlyShowIn=Unity для приложения только для Unity.

Запустите приложения запуска из Dash

введите описание здесь

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

введите описание здесь

А затем нажмите на добавить

введите описание здесь

Введите имя программы, найдите команду и нажмите «Добавить».

Дополнение: Вот пример, который я использую для автозапуска Guake — версии Yakuake для Gnome:

Поместите это в поле «команда».

Это запускает guake автоматически, но ждет 2 минуты, прежде чем сделать это. Вы можете изменить 120 на то, что вы хотите.

Редактировать:

Для 14.04 и 16.04:

Введите Startup в Dash и запустите там форму Startup Application.

введите описание здесь

А затем просто выполните остальные шаги.

(обратите внимание, что если вы используете Ubuntu на другом языке, «автозагрузка» может не найти нужную программу. Попробуйте выполнить другой поиск на вашем языке)

Возможно, вы захотите запустить его из CLI через:

(на тот случай, если вы не используете GNOME;))

Вы можете использовать GNOME Startup Application. введите описание здесь

Нажмите кнопку «Добавить», а затем добавьте полную команду, чтобы открыть нужное приложение. Если вы не знаете путь команды, вы можете сделать

Взгляните на каталог $XDG_CONFIG_DIRS/autostart:

который говорит, что в этом примере есть 3 каталога. Я хотел обрезать запись наутилус

в противном случае, если вы можете добавить его, создайте файл записи рабочего стола: sudo touch /etc/xdg/autostart/my-shell-autostart.desktop добавить это содержимое:

Кроме того, чтобы поместить BATCH FILE в запускаемые приложения для запуска после входа пользователя в систему, введите в командной строке запускаемые приложения в поле Command:

  • gnome-terminal : открыть терминал после входа пользователя с правами текущего пользователя
  • -e : настроить терминал на выполнение командного файла
  • /batch-path/batch-name.sh : полный путь и полное имя пакета

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

Ubuntu 13.10 с инструкциями UNITY

Чтобы сделать это с помощью команды, которая требует sudo это немного сложно.

В моем случае я хотел отключить драйвер PSMOUSE с помощью команды sudo rmmod psmouse чтобы предотвратить проблему щелчка мыши, которая проявляется случайным образом. См. Работа с мышью и тачпадом в Linux для получения дополнительной информации по этой проблеме. Я устал вводить его при каждой загрузке.

На моей установке,

/.config В папке не было подпапки автозапуска, поэтому я ее создал. Это позволило сохранить настройки моих приложений запуска.

Чтобы переключить видимость скрытых приложений запуска, вы можете использовать следующие команды.

Чтобы показать им:

Чтобы скрыть их:

Сконфигурируйте вашу команду согласно сообщениям выше в окне » Настройки запуска приложений».

Затем вы должны отредактировать файл / etc / sudoers, используя sudo visudo , Добавьте строку, содержащую следующую информацию:

Вы должны ввести эту строку ниже строки, которая начинается с % admin. Я добавил свою строку в конец файла. ВАЖНО использовать sudo visudo отредактируйте этот файл, так как если вы допустите ошибку, вы не сможете sudo команды вообще. Если это произойдет, загрузитесь в режиме восстановления и отмените изменения, затем попробуйте использовать sudo visudo ,

Примечание:
Сначала я пытался использовать bash-скрипт для косвенного запуска команды, но это не сработало. Я должен был поставить sudo rmmod psmouse прямо в окне редактирования программы запуска.

Настройка автозапуска в Ubuntu

Убунту — красивая, удобная, а главное, полностью бесплатная операционная система, построенная на ядре Linux. Поэтому всё больше обладателей компьютеров становятся её пользователями. Если в их число попали и вы, то вам стоит, нет, не научиться — учиться там нечему — всего лишь понять и освоить основы управления. Например, как настроить автозапуск приложений и сервисов в Ubuntu.

Настройка автозапуска в Ubuntu

Автоматический старт

Автозагрузка в Ubuntu — такой же процесс, как и на других ОС. Вы, должно быть, помните и представляете, как на Windows при включении ПК сразу же запускались Skype, uTorrent и ещё ряд программ. На Убунту есть несколько программ, которые аналогичным образом включаются вместе с компьютером. Их список можно изменить, как вам удобно: удалить лишние или добавить ещё несколько.

Добавление процессов

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

  1. Открываем меню «Система», пункт «Параметры».
  2. Выбираем программу «Запускаемые приложения».
  3. В появившемся окне видим все утилиты, которые запускаются при старте системы.
  4. Жмём кнопку «Добавить» для добавления новой.

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

Жмём кнопку «Добавить» для добавления новой программы

Поле для добавления команды

Нажимаем Свойства

Указываем значение команды

Указываем значение команды

Добавлять таким образом можно не только утилиты, но и просто сервисы. Только в верхней строчке нужно выбрать подходящий тип, если он есть, а также вписать нужную команду. Главное — знать её.

Отсрочка

В Убунту есть также прекрасная возможность делать отсрочку включения — прямо как на современных духовых шкафах или мультиварках. Она делается с помощью введения небольшого дополнения к тексту команды. Которое выглядит следующим образом: «sleep 20;» (без кавычек). Вместо 20 можно вписать любое число, которое будет означать количество секунд, которые процесс «спит» перед тем, как запуститься. Таким образом вы можете дать системе время полностью загрузиться, после чего уже начнут включаться определённые сервисы или программы.

Удаление

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

  1. Снова заходим в утилиту управления автозагрузкой.
  2. Находим те процессы, которые нам не нужны.
  3. Выделяем их, жмём «Удалить».

Теперь лишние процессы будут убраны из автозапуска Ubuntu. Лучше иметь там только самое необходимое.

Стоит понимать, что если добавить много приложений в автозагрузку Ubuntu, ОС будет загружаться гораздо медленнее. Поэтому лучше не перебарщивайте и правильно регулируйте настройки автоматического запуска. Функция действительно очень удобная и вместе с отсрочкой запуска даёт хороший инструмент для автоматического регулирования действий системы.

Управление автозагрузкой сервисов и скриптов в Linux

date21.04.2020
userVyacheslavK
directoryCentOS, Linux
commentsкомментариев 8

В данной статье мы рассмотрим основы управлением автозагрузкой сервисов и скриптов в Linux CentOS 7/8. В частности, разберем основы работы с демоном systemd, научимся добавлять в автозагрузку сервисы и убирать их оттуда, а также рассмотрим альтернативные варианты запуска скриптов или демонов после старта системы.

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

Systemd: управление автозагрузкой служб в Linux

В большистве популярных современных популярных дистрибутивов Linux (CentOS 7, RHEL, Debian, Fedora и Ubuntu) в качестве демона автозагрузки вместо init.d используется systemd. Systemd – менеджер системы и служб Linux, используется для запуска других демонов и управления ими в процессе работы, использует unit-файлы из /etc/systemd/system (init.d использовал скрипты из каталога /etc/init.d/). Systemd позволяет распараллелить запуск служб в процессе загрузки ОС, тем самым ускоряя запуск.

Для управления system используется команда systemctl.

Для начала, после загрузки системы, мы проверим список юнитов, которые в данный момент добавлены в systemd:

systemctl list-units

Список unit-файлов можно получить командой:

Данная команда отобразит все доступные юнит-файлы (не зависимо от того, были они загружены в systemd после загрузки ОС или нет).

Чтобы вывести список активных сервисов и их состояние, выполните:

# systemctl list-units -t service

Следующая команда выведет список юнитов, которые загрузил или пытался загрузить systemd. Так как после запуска некоторые юниты могут стать неактивными, с помощью флага —all вы получите полный список.

# systemctl list-units —all

Как видим из списка, здесь отображаются даже сервисы, которые не были найдены на диске «not-found».

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

  • —state — используется для определения состояния демона Load, Active, Sub
  • —type — позволяет фильтровать юниты по их типу.

systemctl list-units —all —state=active — выведет список только активных юнитов

systemctl list-units —type=service — выведет список юнитов, которые являются сервисом.

systemctl list-units —type=service вывести список сервисов в centos

Добавление сервиса в systemd

Для управления сервисами в systemd используется особый синтаксис. После имени серверсв в конце нужно указывать .service. Например:

systemctl enable nginx.service – команда добавит в автозагрузку веб-сервер nginx

Данная команда создаст символическую ссылку на копию файла, указанного в команде сервиса, в директории автозапуска systemd.

# systemctl enable nginx.service

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

systemctl status nginx.service

При выводе нужно обратить внимание на строку:

Значение enabled означает что данный сервис загружается автоматически (добавлен в автозагрузку). Если сервис не загружается автоматом, здесь буде указано disabled.

Удаление сервиса из systemd

Вы можете удалить сервис из автозагрузки, чтобы он не запускался после старта Linux (при этом сам сервис с сервера не удаляется). Чтобы удалить сервис из автозагрузки, выполните команду:

systemctl disable нужный_сервис

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

# systemctl disable nginx.service

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

# systemctl is-enabled sshd

Systemd: маскировка юнитов

В моей практике встречались «вредные» сервисы, которые после удаления их из автозагрузки, все равно там оставались и запускались после рестарта ОС. Чтобы решить этот вопрос, можно замаскировать сервис:

systemctl mask nginx.service

И после этого, он вообще не будет запускаться, ни вручную, ни после перезагрузки ОС:

# systemctl mask nginx.service

# service nginx restart

Снять маску можно командой:

# systemctl unmask nginx.service

Если после маскировки сервиса, вы проверите юнит-файлы, то увидите, что сервис помечен как замаскированный (состояние masked):

systemctl mask маскировка сервиса

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

Автозапуска скриптов и сервисов с помощью rc.local

Для запуска различных скриптов при загрузке Linux чаще всего используется rc.local.

Но помимо скриптов, через rc.local так же можно и запускать сервисы, даже те, которые запускаются через systemd. Не могу ответить на вопрос, для чего использовать в таком случае rc.local, если есть systemd, но пару примеров я приведу.

Начнем с того, что файл /etc/rc.local должен быть исполняемым:

chmod +x /etc/rc.local

Rc.local должен быть добавлен в автозагрузку systemd:

systemctl enable rc-local

И на примере того же nginx, мы можем добавить в rc.local команду запуска веб-сервера:

service nginx start

rc.local - автозапуск команда в libux centos

Но я редко использую rc.local для запуска сервисов. Чаще rc.local используется, когда нужно запустить скрипт, либо выполнить разово какую-то команду.

К примеру, я создал скрипт /root/test.sh который выполняет некоторые действия, и хочу запустить его сразу после запуска системы. Добавляем в файл rc.local строку:

rc.local запуск sh скрипта

Начиная с CentOS 7, разработчики указывают на то, что rc.local устаревший демон и осуществлять автозапуск скриптов или сервисов через него, это прошлый век. Но пока он работает, я пользуюсь им, так как он очень прост в эксплуатации.

Создание собственного демона и добавление его в systemd

Вы можете создать собственный демон, которым можно будет управлять через systemd.

Например, нам нужно запускать все тот же скрипт /root/test.sh после перезагрузки системы. Начнем с создания файла нашей будущей службы:

touch /etc/systemd/system/test-script.service
chmod 664 /etc/systemd/system/test-script.service
nano /etc/systemd/system/test-script.service

Содержимое файла будет следующее:

User – пользователь под которым будет запускаться демон

Type=oneshot — процесс будет завершен до запуска дальнейших юнитов

Проверяем и перезапускаем:
# systemctl daemon-reload
# systemctl start test-script.service
# systemctl status test-script.service

Если вас устроило то, как работает сервис, добавьте его в автозагрузку:

# systemctl enable test-script.service

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

Автозапуск через cron

Если вам с какой-то периодичностью нужно запускать скрипт или команду, вы можете воспользоваться cron-ом:

crontab -e — открыть терминал для написания задания cron

И добавьте туда нужное вам задание, например:

* * * * * /root/test.sh — запускать скрипт каждую минуту.

Можно написать скрипт watch-dog, который по заданию будет проверять, например, статус какого-либо сервиса и, если он не работает, запускать его. На нескольких своих проектах я использую подобную схему.

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

Допустимые значения для времени запуска заданий cron по порядку:

  • Минуты от 0 до 59
  • Часы от 0 до 59
  • День месяца от 1 до 31
  • Месяц от 1 до 12
  • День недели от 0 до 7 (0 или 7 это воскресение)

В нашем задании скрипт запускается каждую минуту, поэтому там стоят «*».

Так же вы можете разместить нужный вам скрипт в директориях cron:

  • /cron.daily – выполнение скрипта ежедневно
  • /cron.hourly – выполнение скрипта ежечасно
  • /cron.monthly — выполнение скрипта ежемесячно
  • /cron.weekly — выполнение скрипта еженедельно

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

.bashrc: автозапуск скриптов при запуске терминала

Если вам требуется выполнять какие-то действия при запуске терминала ssh, вы можете добавить любую команду или выполнение скрипта в .bash_profile или .bashrc. Теоретически, вы можете добавить какое-либо действие в любой из этих файлов, оно выполнится в любом случае. Обычно все необходимое добавляется в .bashrc, а сам .bashrc запускают из .bash_profile.

Я добавил в файл .bashrc команду на рестарт веб-сервиса nginx:

service nginx restart

.bash_profile - запуск скрипта при старте сессии

После этого сохранил файл и перезапустил терминал:

пример автозапуска скрипта через сессию

Как видите, при запуске терминала, веб-сервер был перезапущен. Какие действия можно выполнять при запуске терминала? Вероятно, запускать какие-то вспомогательные утилиты, например, проверка uptime сервера:

показывать uptime при входе

Или вы хотите, чтобы при запуске терминала, вы сразу попадали в нужную вам директорию и запускали mc, добавьте в .bashrc

Надеюсь эта статья по управлению автозапуском сервисов и скриптов в LInux (статья писалась для CentOS) оказалась полезной для вас. Наверняка тем, кто только познает азы системного администрирования Linux, это информация будет кстати.

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

голоса
Рейтинг статьи
Читайте так же:
Как запустить Ubuntu с флешки без установки на компьютер
Ссылка на основную публикацию