2439 subscribers

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

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

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

Linux Boot Scripts
Linux Boot Scripts

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

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

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

Примечание. Мы предполагаем использование Bash в качестве основной оболочки.

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

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

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

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

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

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

# chmod +x /etc/rc.d/rc.local

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

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

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

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