У 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, але пропоную зупинитися на будь-якому методі, який працює.