Linux приложение для автозапуска

Как добавить любую программу в автозагрузку Linux

У каждого пользователя есть набор программ, которые он запускает ежедневно. Чтобы избавить себя от необходимости проделывать это вручную, оные приложения можно добавить в автозагрузку. В Windows это можно сделать, закинув ярлык программы в каталог автозагрузки, прописав ее в соответствующем ключе реестра или добавив в Планировщик заданий. А как с этим дела обстоят в Linux? В операционной системе Linux также имеется автозагрузка, но работает она несколько иначе.

За автозагрузку в Linux отвечает специальный процесс, именуемый системой инициализации. Этот процесс запускает все остальные процессы после того, как ядро операционной системы передаст ему дальнейшее управление. Также в Linux имеется несколько уровней или режимов автозагрузки. Например, автозагрузка на уровне ядра позволяет заменить систему инициализации любой другой программой. Есть уровни автозагрузки специально для скриптов (rc.local и Xinitrc) , есть автозагрузка bash , позволяющая автоматически выполнять команды в открытом терминале и есть автозагрузка окружения рабочего стола.

Этот последний уровень для начинающих осваивать Linux пользователей является наиболее удобным. Добавим для примера в автозагрузки Ubuntu браузер Firefox .

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

Нажмите кнопку «Добавить».

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

Исполняемые файлы пользовательских приложений в Linux копируются в папку /usr/bin , а если программа запускается с правами администратора, то в папку /usr/sbin . Если вы не нашли в них своей программы, поищите ее в папке /usr/opt , иногда разработчики прописывают в программе этот путь установки.

Поле «Описание» заполнять необязательно.

Всё, жмем «Добавить» и программа окажется в автозагрузке.

Второй способ добавить программу в автозагрузку — создать в папке

/.config/autostart конфигурационный файл desktop . Вот как, к примеру, выглядит содержимое файла автозапуска только что добавленной нами в автозагрузку Firefox.

Папка «.config» располагается в каталоге Home и является скрытой, чтобы ее показать, нажмите Ctrl + H . В папке autostart создайте пустой документ.

Откройте его текстовым редактором и вставьте в него набор команд, указанный на скриншоте.

Это минимальный набор параметров.

В нашем примере в автозагрузку добавляется текстовый редактор leafpad , его название мы указываем в параметрах Name и Exec. Осталось только переименовать файл в name.desktop , где name — название программы.

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

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

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

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

Чтобы иметь возможность запускать в современных версиях Windows старые 16-битные приложения, необязательно использовать эмуляторы, та .

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

Меню «Пуск» в Windows 10 – верх эволюции этого меню на данный момент, оно самое .

Читайте также:  Kali linux sources list 2021

Источник

Добавление приложения в автозагрузку Linux (как запускать программу автоматически при старте ОС Linux)

Всех приветствую!

Сегодняшний вопрос (насчет автозагрузки приложений) весьма популярен, причем, как при работе в Windows, так и Linux. Разумеется, в Linux он имеет свои особенности.

Наверное, для начала сразу же следует сказать, что в Linux несколько уровней (режимов) автозагрузки. Например, есть автозагрузка на уровне ядра, на уровне скриптов (rc.local), bash, и пр. малопонятные для начинающего пользователя аббревиатуры.

И в этой заметке я бы не хотел рассматривать все «эти тонкости», а показать наипростейшие варианты добавить обычное приложение (Chrome, Firefox, и т.д. и т.п.) в автозагрузку Linux (так, чтобы оно стартовало вместе с загрузкой ОС). Думаю, большинство пользователей именно это и интересует. 😉

👉 В помощь!

Если в процессе настройки вам понадобиться указать программу вручную (которую требуется авто-загружать) — ищите исполняемый файл в каталоге: /usr/bin (для отдельных приложений, запускаемых от имени админа: /usr/sbin ).

Примеры настройки автозагрузки

Вариант 1

Для начала совет банальный — откройте настройки того приложения, которое вам нужно добавить в автозагрузку. Возможно, что среди его параметров будет заветный «флажок», позволяющий запускать приложение при старте системы. См. пример на скрине ниже. 👇

Примечание : в некоторых системах Linux подобная опция в настройках приложения может ничего не дать. (т.е. приложение не будет запускаться при загрузке ОС).

Настройки конкретного приложения / параметры запуска

Вариант 2

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

Linux Mint

В этом дистрибутиве всё гораздо проще, чем просто «просто». 👌

Сначала необходимо открыть меню ПУСК/параметры системы и перейти во вкладку «Автозагрузка» .

Параметры системы — автозагрузка (Linux Mint)

После кликнуть по «плюсику» и выбрать нужное приложение из списка. Это всё. ✌

Добавляем нужно приложение (Linux Mint)

Elementary OS

Здесь все делается практически аналогично, как в Linux Mint.

Сначала необходимо открыть параметры системы и перейти во вкладку «Приложения» .

Параметры системы — приложения (Elementary OS)

После раскрыть меню «Автозапуск» , нажать на «плюс» и выбрать нужное приложение.

Автозапуск — выбор нужного приложения (Elementary OS)

Если когда-то потом приложение необходимо будет убрать из автозагрузки — просто переведите ползунок в режим «Выкл.» . Пример см. на скриншоте ниже. 👇

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

Ubuntu

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

Для добавления своей программы необходимо нажать на кнопку «Добавить» , как в моем примере 👇. Потребуется указать имя, команду (об этом далее) и описание.

Ubuntu — добавить программу

После необходимо будет указать нужный исполняемый файл (программу) — обычно, они копируются в каталог /usr/bin (для ПО, запускаемых от имени админа — /usr/sbin ). В редких случаях может быть задействован каталог /usr/opt (один из примеров ниже 👇).

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

Deepin

Этот дистрибутив (на мой взгляд) в плане простоты работы выигрывает у предыдущих!

Представьте, чтобы добавить программу в автозагрузку — достаточно просто кликнуть по ее значку правой кнопкой мыши и в контекстном меню выбрать оное. 👇

Как вам. (так просто даже в Windows не сделаешь!)

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

Разумеется, для исключения приложения из автозагрузки — нужно проделать обратную операцию: также кликнуть ПКМ по значку.

Теперь на приложении спец. значок — оно будет стартовать вместе с системой (Deepin)

Источник

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

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

Читайте также:  Microsoft windows object names

Задача статьи – научить вас быстро разобраться со списками служб и скриптов которые запускаются в 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:

Список 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 — выведет список юнитов, которые являются сервисом.

Добавление сервиса в 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):

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

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

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

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

Читайте также:  Браузер osiris для windows

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

chmod +x /etc/rc.local

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

systemctl enable rc-local

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

service nginx start

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

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

Начиная с 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

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

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

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

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

Источник

Оцените статью