Bash Script при запуску? (Linux)


12

Чи є спосіб зробити / запустити bash-скрипт при перезавантаженні (як, наприклад, у Debian / Ubuntu, оскільки у мене є 2 ящики вдома)

Крім того, будь-які рекомендовані посібники для виконання завдань з крон? Я абсолютно новий для них (але вони будуть дуже корисні)

Відповіді:


21

У Ubuntu / Debian / Centos ви можете налаштувати роботу cron для запуску @reboot. Це запускається один раз при запуску системи. Використовуйте crontab -e для редагування crontab та додайте рядок, як у наведеному нижче прикладі, наприклад

@reboot /path/to/some/script 

Якщо ви шукаєте їх, існує багато ресурсів для cron. На цьому сайті є кілька хороших прикладів.


7

Ще один типовий спосіб запустити щось під час завантаження на багатьох платформах * nix - я думаю, це може почати втрачати прихильність - див. Альтернативи ), щоб помістити сценарії в каталог, який, в залежності від конкретної ОС / дистрибуції, може бути що - щось на зразок /etc/rc2.d, /etc/rc3.d, /etc/rc/rc3.dі т.п. (різні дистрибутиви використовують різні «рівні виконання», який , коли число приходить з - см посилання нижче). Часто вони також посилаються на файли або в файли з них /etc/init.d, для більш простого виконання вручну, і вони приймають аргумент "пуск" та / або "стоп" на більшості * nix-платформ, а також "статус", "перезапуск", тощо на багатьох платформах Linux. У таких системах вони, як правило, виконуються init,inittab. У системах * BSD існує інший стиль подібної концепції , і, як пов’язано вище, існує купа варіацій.

У наведеному вище стилі сценарії, наприклад, /etc/rc2.d(для системи з типовим рівнем 2), зазвичай починаються з букви Sабо K, а потім двоцифрового числа. Сценарії, які починаються з S, запускаються в лексикографічному порядку (що перекладається, як правило, в числовий порядок) при завантаженні вгору, на рівень 2, з аргументом "start". При вимкненні сценарії з префіксом K аналогічно виконуються з аргументом "стоп".

Файли в /etc/init.d(або іноді /etc/rc/init.dабо інших варіантах) називаються без префіксів S і K або числових чисел. Зазвичай файли в різних каталогах /etc/rc?.d символізують посилання на реальні файли, на які часто посилається через префікс відносного шляху ../init.d/.

У різних системах існують різні утиліти для управління ними, а також вмикання та вимкнення речей тощо. На IRIX (оскільки принаймні IRIX 4, якщо моя пам'ять слугує), він використовувався як інструмент під назвою chkconfig, який не маніпулює посилання, але які би перевірялися сценаріями, щоб побачити, чи слід їх виконувати чи ні. Я думаю, що IRIX була першою ОС, яка мала щось подібне. Пізніше в деякій версії RedHat, яку я раніше мав, був інструмент з такою ж назвою, але він поводився трохи інакше, насправді керуючи символьними посиланнями - подивіться, chkconfig(8)наскільки я думаю, що це, мабуть, та сама (або дуже схожа) версія як я звик тоді.

У системі Ubuntu 9.04, до якої я маю доступ, схоже, update-rc.dце сценарій для запуску.

Якщо ви користуєтесь системою, яка використовує inittab, ви також можете додавати речі безпосередньо туди, що може бути особливо корисно для речей, які ви хочете запускати не один раз під час завантаження, а за тим, щоб вони активно контролювали (за init), respawnякщо вони коли-небудь збій або припинення. Для man inittabотримання додаткової інформації див. Вихід (якщо у вас є) у вашій системі. І / або man initтощо. Є багато різних ароматів, і я (на даний момент) не дуже знайомий ні з Debian, ні з Ubuntu, тому я не впевнений, на що саме тебе звернути увагу, але, сподіваюся, це дає тобі деякі вихідні точки .

Розділ @reboot в crontob для мене є новим, але також здається, що це може бути корисним варіантом - хоча я б запропонував сценаріїв init як кращих для багатьох речей. Але див. man 5 crontabДля отримання додаткової інформації про те, що можна поставити у свою конфігурацію cron, і як це можна сказати для запуску речей та коли (в тому числі, якщо припустити, що версія Viron / ISC для cron [див. Історію cron ] з @reboot).

Я сподіваюся, що це корисно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.