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

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

Мануал

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

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

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

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

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

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

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

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

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

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

# chmod +x /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
Перезагрузите систему, чтобы проверить его выполнение.
# reboot

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

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

Это можно легко сделать, используя специальную строку «@reboot» с заданием cron.

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

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

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

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

# crontab -e

@reboot /opt/scripts/run-script-on-boot.sh
Перезагрузите систему, чтобы проверить его выполнение.
# reboot

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

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

Этот метод очень прост.

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

Для этого вам нужно создать скрипт запуска 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
Перезагрузите систему, чтобы проверить его выполнение.
# reboot

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

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

/Path/To/My_Script &

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

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

 

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

  1. Вадим

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

    Ответить