У Ubuntu є щонайменше три "відповідних" способи запуску речей (припускаючи, що ви не хочете просто їх встановлювати), перераховані тут у порядку зменшення переваг:
/etc/init/*.conf
(На початку)
/etc/init.d/*
(сисвініт)
/etc/rc.local
(сценарій зміни рівня запуску)
Існує також можливість використання правил udev, але це буде складно. Я рекомендую проти цього. Сценарій sysvinit є надмірним для такої дрібниці, тому я зупинюся на двох інших варіантах. Сценарій зміни рівня запуску є найпростішим (хоча і найменш кращим), тому я розпочну з нього.
/etc/rc.local
Файл просто виконується з допомогою /etc/init.d/rc.local
сценарію SysVinit, який (за замовчуванням) виконується в останній раз при переході на будь-яка нормальна «на» рівень запуску (наприклад , при завантаженні нормально, але не тоді , коли ви виключаєте або перейти в режим відновлення). Щоб здійснити налаштування завантажувального пристрою, просто додайте це в кінці /etc/rc.local
, припускаючи, що ваш файл викликається, /srv/diskimage
і ви хочете використовувати його /dev/loop0
як пристрій циклу:
losetup /dev/loop0 /srv/diskimage
Це дійсно все, що там є. Звичайно, замініть назви файлів тим, що найкраще працює у вашому налаштуванні.
Якщо ви хочете трохи визначитись із цим, ви можете створити для нього завдання Upstart, яке налаштовує його після встановлення файлової системи, що містить його. Прикладом може бути такий припущення, якщо припустити, що /srv
це точка монтування, що містить ваш diskimage
файл:
description "Setup loop devices after filesystems are mounted"
start on mounted MOUNTPOINT=/srv
task
exec losetup /dev/loop0 /srv/diskimage
Це повинно бути досить простим, щоб дотримуватися концептуально: Перший рядок - це лише коментар для людських читачів, і це вказівки Upstart дочекатися /srv
монтажу файлової системи, виконувати процес завантаження і вважати себе закінченим після успішного завершення процесу (a " завдання ", на відміну від служби, яка зберігається). Просто помістіть цей вміст у файл, який відповідає /etc/init/*.conf
. Я б /etc/init/losetup.conf
сам вибрав .
Переваги завдань Upstart /etc/rc.local
для такої простої речі невеликі, але важливі. По-перше, /etc/rc.local
застаріла, і її використання як просто "безладна пісочниця для того, щоб зробити справи", в наші дні насміхається дуже багато всіх. Серед інших причин нахмурення його використання, деякі програми, які використовують цей файл, просто перезаписують вміст, і складно узгодити різні сценарії, які потрібно перейти в один і той же файл. По-друге, Upstart насправді обробляє перевірку залежності для вас (переконайтесь, що файлова система встановлена спочатку), тому, якщо є проблема зі встановленням файлової системи, вона не будеспробуйте налаштувати циклічний пристрій ...., але як тільки ви його вирішите та змонтуєте. По-третє, Upstart є набагато більш гнучким: ви можете, наприклад, зробити його досить розумним, щоб знайти невикористаний пристрій циклу та "випромінювати" цей циклічний пристрій для використання в інших роботах з початковими стартами, подібно до того, як ми використовували змінну "MOUNTPOINT" у цьому прикладі вище.
/etc/init.d/something
або/etc/rc.local
, але пропоную зупинитися на будь-якому методі, який працює.