Выполнить команду при загрузке linux

Содержание
  1. Как добавить скрипт в автозагрузку Ubuntu
  2. Создание скрипта для автозагрузки
  3. Автозагрузка скрипта при старте системы
  4. Автозагрузка скрипта при входе пользователя
  5. 1. Автозагрузка Gnome в GUI
  6. 2. Автозагрузка Gnome вручную
  7. 3. Автозагрузка в Systemd
  8. Выводы
  9. Как автоматически выполнять команды или скрипты во время перезагрузки или запуска Linux сервера
  10. Выполнение скриптов Linux во время перезагрузки или запуска
  11. Метод №1 — Используйте задание cron (cron job)
  12. Метод № 2 — Используйте /etc/rc.d/rc.local
  13. Выполнение скриптов Linux при входе в систему и выходе из системы
  14. 🐧 Как выполнить команду или скрипт при перезагрузке или запуске системы
  15. Метод 1: Как запустить скрипт или команду при перезагрузке или запуске системы с помощью файла /etc/rc.d/rc.local
  16. Способ 2: Как выполнить команду или скрипт при перезагрузке или запуске системы с помощью crontab
  17. Метод 3: Как запустить команду или скрипт при перезагрузке или запуске системы с помощью системного сервисного юнита
  18. Бонусные советы:

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

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

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

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

Скорее всего, у вас уже есть скрипт, который вы хотите запускать. Но если нет, или же вы хотите попрактиковаться с другим скриптом, то создайте скрипт в папке /usr/local/bin. Эта папка обычно используется для хранения пользовательских бинарных файлов. Дальше в этой статье я буду использовать путь к скрипту /usr/local/losst-script.sh:

sudo vi /usr/local/losst-script.sh #!/bin/bash echo «Hello world» > ~/file

Этот скрипт просто выводит строчку «Hello world» в файл в домашней папке текущего пользователя. Более подробно о создании скриптов читайте в статье написание скриптов на Bash. Когда скрипт будет готов, сделайте его исполняемым:

sudo chmod ugo+x /usr/local/losst-script.sh

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

Автозагрузка скрипта при старте системы

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

sudo systemctl edit —force —full script.service

Команда откроет текстовый редактор, добавьте в него такое содержимое:

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

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

Теперь добавьте этот скрипт в автозагрузку:

sudo systemctl enable srcipt

Если Systemd не видит такого сервиса, обновите информацию о юнитах с помощью команды:

sudo systemctl daemon-reload

После этого скрипт запустится во время инициализации системы. Вы можете убедится что всё работает, перезагрузив систему и посмотрев в папку /root. Там должен появится файл с текстом Hello world.

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

Читайте также:  Pure os linux установка

Автозагрузка скрипта при входе пользователя

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

1. Автозагрузка Gnome в GUI

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

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

Скрипт будет выполнен после загрузки графической оболочки Ubuntu. Вы можете перезагрузить систему и убедится, что в домашней папке вашего пользователя появился файл file, с содержимым «Hello world».

2. Автозагрузка Gnome вручную

Всё описанное в предыдущем пункте можно сделать и вручную, без утилиты Startup Applications. Ярлыки приложений для автозагрузки могут находится в двух расположениях:

  • /etc/xdg/autostart/ — для всех пользователей;
  • ~/.config/autostart/ — для текущего пользователя.

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

vi ~/.config/autostart/script.desktop [Desktop Entry]
Name=Script
Type=Application
Exec=/usr/local/losst-script.sh

Здесь в поле Exec необходимо прописать путь к скрипту, который надо выполнить, а в поле Name имя ярлыка. После этого ваш скрипт будет запускаться автоматически при входе пользователя в графическую оболочку. Утилита Startup Applications будет видеть этот ярлык и вы можете управлять им там тоже.

3. Автозагрузка в Systemd

Система инициализации Systemd позволяет запускать отдельный набор сервисов для каждого пользователя. Для управления такими сервисами нужно использовать опцию —user. Используйте такую команду для того чтобы создать файл скрипта:

systemctl edit —user —force —full script.service [Unit] Description=My Script Service After=default.target [Service] Type=idle ExecStart=/usr/local/losst-script.sh [Install] WantedBy=default.target

Юнит файл будет создан только для текущего пользователя. В данном случае это будет файл /home/sergiy/.config/systemd/user/script.service. Обратите внимание, что цель multi-user.target здесь недоступна, поэтому следует использовать default.target. Теперь осталось только добавить этот юнит в автозагрузку:

systemctl enable —user script.service

Поле этого можно перезагрузить систему и убедится что всё работает.

Выводы

Теперь вы знаете как добавить скрипт в автозагрузку Linux несколькими способами. Это может быть немного сложно для начинающих, но вы можете ознакомится ещё со статьей про Автозагрузку сервисов, а также Управление службами для того чтобы лучше понимать как всё работает.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

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

img

Мы уже рассматривали как можно выключать и перезагружать Linux сервер. А вы знали вы можете заставить операционную систему выполнять определенные действия при загрузке, а также при входе в систему или выходе из нее?

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

Читайте также:  Все версии fedora linux

Linux Boot Scripts

Выполнение скриптов Linux во время перезагрузки или запуска

Есть два традиционных метода для выполнения команды или запуска скриптов во время запуска:

Метод №1 — Используйте задание cron (cron job)

Помимо обычного формата минута/час/день месяца/месяц/день недели , который широко используется для обозначения расписания, планировщик cron также позволяет использовать @reboot . Эта директива, за которой следует абсолютный путь к скрипту, приведет к его запуску при загрузке сервера.

Руководство по cron можно найти тут.

Однако у этого подхода есть два предостережения:

  • Демон cron должен быть запущен
  • Сценарий или файл crontab должны включать необходимые переменные среды, если таковые имеются

Метод № 2 — Используйте /etc/rc.d/rc.local

Этот метод действителен даже для дистрибутивов на основе systemd. Чтобы этот метод работал, вы должны предоставить разрешения на выполнение (execute) для /etc/rc.d/rc.local следующим образом:

и добавьте свой скрипт в конец файла.

Имейте в виду, что скрипту предварительно должны быть предоставлены разрешения на выполнение: $ chmod +x /home/gacanepa/script1.sh

Выполнение скриптов Linux при входе в систему и выходе из системы

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

Источник

🐧 Как выполнить команду или скрипт при перезагрузке или запуске системы

Мануал

Хорошо известные сервисы на Linux могут быть добавлены на старт при загрузке системы без каких-либо проблем.

Например, если вы хотите добавить службу Apache Httpd при загрузке, вы можете сделать это с помощью команд chkconfig и systemctl.

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

Вы можете сделать это, используя следующие три метода.

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

Метод 1: Как запустить скрипт или команду при перезагрузке или запуске системы с помощью файла /etc/rc.d/rc.local

Файл «/etc/rc.local» традиционно выполняется после того, как все обычные службы были запущены в конце процесса перехода в многопользовательский уровень выполнения.

Этот метод также работает в системе systemd.

Вам нужно добавить местоположение вашего скрипта в файл «/etc/rc.d/rc.local» для запуска при старте системы.

Убедитесь, что файл имеет права на запуск.

# vi /opt/scripts/run-script-on-boot.sh #!/bin/bash date > /root/on-boot-output.txt hostname > /root/on-boot-output.txt
# chmod +x /opt/scripts/run-script-on-boot.sh

Наконец добавьте скрипт в конец файла.

# vi /etc/rc.d/rc.local /opt/scripts/run-script-on-boot.sh

Способ 2: Как выполнить команду или скрипт при перезагрузке или запуске системы с помощью crontab

cron автоматически выполняет запланированные задания в бэкэнде в определенное время.

@reboot – это специальная строка, которая позволяет пользователю запускать любую команду или скрипт при запуске ( во время загрузки).

В этом примере запускается файл «/opt/scripts/run-script-on-boot.sh» при перезагрузке системы.

Мы будем использовать тот же скрипт, что и выше.

Для этого просто добавьте следующую запись в файл crontab.

# crontab -e @reboot /opt/scripts/run-script-on-boot.sh

Метод 3: Как запустить команду или скрипт при перезагрузке или запуске системы с помощью системного сервисного юнита

Этот метод работает только в системах systemd.

Мы собираемся использовать тот же скрипт, показанный выше, чтобы продемонстрировать этот способ.

Читайте также:  Удалить системную папку linux

Для этого вам нужно создать скрипт запуска systemd и поместить его в каталог «/etc/systemd/system/».

Это наш пример скрипта запуска юнита systemd.

# vi sample-on-boot-script.service [Unit] Description=Run a Custom Script at Startup After=default.target [Service] ExecStart=/opt/scripts/run-script-on-boot.sh [Install] WantedBy=default.target

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

# systemctl daemon-reload # systemctl enable sample-on-boot-script.service

Бонусные советы:

Если вы хотите запустить скрипт в фоновом режиме, вам нужно добавить амперсанд «&».

Если вы хотите выполнить команду от имени другого пользователя, используйте следующий формат.

su - $USER -c /Path/To/My_Script

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!

Не получается разобраться с вторым вариантом. Хочу при запуске системы активировать команду “net.inet.ip.ttl=65”. Как её активировать при помощи crontab?

  • Аудит ИБ (49)
  • Вакансии (12)
  • Закрытие уязвимостей (105)
  • Книги (27)
  • Мануал (2 306)
  • Медиа (66)
  • Мероприятия (39)
  • Мошенники (23)
  • Обзоры (820)
  • Обход запретов (34)
  • Опросы (3)
  • Скрипты (114)
  • Статьи (352)
  • Философия (114)
  • Юмор (18)

Anything in here will be replaced on browsers that support the canvas element

Что такое 404 Frame? Большинство инструментов для взлома веб-сайта находятся в 404 Frame. Итак, что же представляют собой команды? Вы можете отдавать команды, используя повседневный разговорный язык, поскольку разработчики не хотели выбирать очень сложную систему команд. Команды Команды “help” / “commands” показывают все команды и их назначение. Команда “set target” – это команда, которая должна […]

В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]

Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]

Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]

Является ли запуск сервера NFS в кластере Kubernetes хорошей идеей или это ворота для хакеров Одним из многочисленных преимуществ сетевой файловой системы является ее способность выполнять многократное чтение-запись. И как и все в наши дни, NFS – это просто еще одна служба, которую можно запустить в своем кластере Kubernetes. Однако является ли сервер NFS подходящей […]

Источник

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