Автозапуск скриптов и приложений в Linux
Автозапуск скриптов и приложений при загрузке системы (до запуска графической оболочки):
sudo nano /etc/rc.local
В Ubuntu есть утилита «Автоматически запускаемые приложения» (запуск после авторизации пользователя):
gnome-session-properties
Еще можно создать файл автозапуска .desktop:
gedit ~/.config/autostart/fix-hotkeys.sh.desktop
[Desktop Entry] Type=Application Exec=fix-hotkeys.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[ru_RU]=My fix hotkeys script Name=fix-hotkeys.sh Comment[ru_RU]= Comment=
Автозапуск скриптов и приложений при авторизации пользователя (через GUI или SSH) или запуске терминала:
nano ~/.bashrc
#автозапуск, #autostartup, #autorun, #ubuntu desktop
Автозапуск скрипта в линукс [дубликат]
Сап Стэк. Такая проблема. Купил одноплатник для школьного проекта. Типа домашний сервер для бытовых нужд. Скрипт, который нужно запускать работает исправно. Он всего один. А вот как поместить его в автозапуск я не знаю. Помоги, а?
Отслеживать
задан 6 окт 2020 в 15:59
Сергей Клепцов Сергей Клепцов
3 4 4 бронзовых знака
Обратитесь к документации той операционной системы, которая установлена на этом одноплатнике
6 окт 2020 в 16:01
Я ж и говорю — к документации операционной системы. А понятие «убунто-образное» всё равно слишком широкое, чтобы можно было дать какой-то конкретный ответ
6 окт 2020 в 16:43
засуньте в cron задание @reboot root /path/script.sh
– user341547
6 окт 2020 в 17:11
Какой дистрибутив?
7 окт 2020 в 9:45
Возможный дубликат вопроса: Автозапуск программы при старте сервера
5 мар 2021 в 12:45
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
- Во многих дистрибутивах есть файл /etc/rc.local. Если он есть, то можно вписать скрипт туда. Только не забудь символ & после команды.
- Если есть cron, то можно запустить с помощью него, добавив в файл /etc/crontab @reboot
- Если используется systemd, то можно создать unit, который будет выполняться при старте системы
Отслеживать
ответ дан 18 окт 2020 в 6:20
154 6 6 бронзовых знаков
- linux
- сервер
- raspberry-pi
- автозапуск
- Важное на Мете
Связанные
Похожие
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.29.1725
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Создание своего скрипта автозапуска при загрузке компьютера
Данная строка указывает, какую командную оболочку необходимо использовать. Дальше свои команды.
Сохраним его под оригинальным названием (чтоб не совпадал с уже существующими) в каталоге /usr/sbin/.
Чтобы скрипт запускался при загрузке, необходимо прописать его в файле /etc/rc.local до строчки exit 0. Если у вас не существует данного файла, создайте его и вставьте в него следующее содержимое:
#!/bin/sh -e #Здесь вставляем строку с указанием вашего скрипта. /usr/sbin/mescripts exit 0
Немного более сложный способ
Позволяет задать последовательность загрузки и поведение скрипта при разных runlevel’ах.
Изучаем /etc/init.d/skeleton , на его основе создаем скрипт /etc/init.d/my_script , которым будет запускаться/останавливаться наше приложение.
В этих директориях лежат скрипты остановки сервисов:
/etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/
в этих — скрипты запуска сервисов:
/etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/
Изучаем их на предмет последовательности (чем меньше первая цифра в начале скрипта, тем раньше запускается/останавливается приложение). Это может быть критично, если ваше приложение будет зависит от каких-то сервисов.
После того, как определились со скриптом запуска и очередностью, выполняем следующее :
sudo update-rc.d my_script start 70 2 3 4 5 . stop 20 0 1 6 .
Здесь я определил, что мой скриптик должен запускаться попозже остальных(70), и останавливаться пораньше(20). Цифры 2 3 4 5 0 1 6 означают уровни загрузки.
Если что-то не понравилось — все можно удалить
sudo update-rc.d -f my_script remove
Подробности в man update-rc.d .
Выполнение скрипта при включении/отключении сети
Есть директория /etc/network/ с поддиректориями if-down.d , if-pre-up.d , if-post-down.d , if-up.d . Если разместить скрипт в одной из этих поддиректорий, то он будет выполняться соответственно при выключении, перед включением, после выключения или при включении сети.
Другой способ — указать в файле /etc/network/interfaces одну из следующих директив: up , pre-up , post-up , down , pre-down , post-down . Например, строка
post-up /path/to/script.sh
после включения сети выполнит скрипт script.sh. Подробнее можно почитать в man interfaces .
В любом случае на скрипт должны быть установлены права, разрешающие выполнение, иначе он не сможет запуститься.
Как добавить скрипт в автозагрузку Ubuntu
В некоторых случаях при загрузке системы возникает необходимость выполнить свой скрипт. К таким случаям относится потребность в изменении разрешения экрана, запуске определенных приложений и обновлении конкретной утилиты.
Запуск скрипта можно реализовать различными способами. Сделать это можно путем использования графической оболочки или системы инициализации systemd, используемая сейчас практически во всех дистрибутивах.
Автозагрузка за счет стандартной утилиты Ubuntu
Первое, что следует сделать, это в удобном месте создать скрипт и выполнить его:
$ sudo gedit /путь_к_скрипту/имя_скрипта.sh
#!/bin/bash
echo «Hello world»
Этот скрипт выведет на экран пользователя сообщения «Hello world». Когда программа готова, ее необходимо сделать исполняемой. Для этого используется следующая команда:
$ sudo chmod ugo+x /путь_к_скрипту/имя_скрипта.sh
Дальше в главном меню системы необходимо запустить утилиту «Автоматически запускаемые приложения».
Жмем кнопку «Добавить» и вводом полный путь к файлу скрипта в поле «Команда». Можно нажать кнопку «Обзор», найти, выбрать файл скрипта и нажать «Добавить».
В дальнейшем программа будет исполняться каждый раз при запуске графической оболочки Ubuntu.
Автозагрузка скриптов Linux в Systemd
Воспользуйтесь специальной командой, чтобы создать файл сервиса system
sudo systemctl edit —force myscript
В этот файл необходимо добавить содержимое:
[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
Программа запустится после инициализации системы. С этой целью можно пользоваться «старым» способом: с помощью rc.local. сощдается файл /etc/rc.local и прописывается путь к нему в строке ExecStart сервис-файла.