Ubuntu'da başlangıç öğelerini yapmanın en az üç "uygun" yolu vardır (yalnızca monte etmek istemediğinizi varsayar), burada azalan tercih sırasına göre listelenir:
/etc/init/*.conf
(Sonradan görme)
/etc/init.d/*
(Sysvinit)
/etc/rc.local
(çalışma düzeyi değişiklik komut dosyası)
Udev kurallarını kullanma olasılığı da vardır, ancak kıvrık olacaktır. Buna karşı tavsiye ederim. Sisvinit betiği böyle küçük bir şey için aşırıya kaçmış, bu yüzden diğer iki seçeneğe odaklanacağım. Runlevel değişiklik komut dosyası en basit (en az tercih edilen olsa da), bu yüzden orada başlayacağım.
/etc/rc.local
Dosya yalnızca tarafından yürütülür /etc/init.d/rc.local
(varsayılan olarak) olduğu sysvinit komut, çalışma seviyesi "açık" herhangi bir normal geçiş üzerine son infaz (normalde önyükleme örneğin zaman, ancak kapatmaya veya kurtarma moduna değilken). Önyükleme aygıtının kurulumunu uygulamak için, /etc/rc.local
dosyanızın arandığını /srv/diskimage
ve /dev/loop0
döngü aygıtı olarak kullanmak istediğinizi varsayarak bunu sonuna ekleyin :
losetup /dev/loop0 /srv/diskimage
Gerçekten hepsi bu kadar. Tabii ki, dosya adlarını kurulumunuzda en iyi olanla değiştirin.
Bu konuda biraz daha spesifik olmak istiyorsanız, bunun için onu tutan dosya sistemi kurulduktan sonra ayarlanan bir Upstart işi oluşturabilirsiniz. Dosyanızı /srv
içeren bağlama noktası olduğunu varsayarak, aşağıdaki örnek verilebilir diskimage
:
description "Setup loop devices after filesystems are mounted"
start on mounted MOUNTPOINT=/srv
task
exec losetup /dev/loop0 /srv/diskimage
Bu, kavramsal olarak takip edilecek kadar basit olmalıdır: İlk satır sadece insan okuyucular için bir yorumdur ve /srv
dosya sistemi yüklenene kadar beklemek , losetup işlemini yürütmek ve işlem başarıyla tamamlandığında kendinizi tamamladığınızı düşünmek için Upstart'a talimatlar (a " görev ", kalıcı bir hizmetin aksine). Bu içerikleri bir dosya eşleştirmesine koymanız yeterlidir /etc/init/*.conf
. /etc/init/losetup.conf
Kendimi seçerdim .
Bu kadar /etc/rc.local
basit bir şey için Upstart işlerinin avantajları küçük ama önemlidir. Birincisi, /etc/rc.local
kullanımdan kaldırıldı ve bu günlerde "işleri halletmek için sadece dağınık bir kum havuzu" olarak kullanımı hemen hemen herkes tarafından kaşlarını çattı. Kullanıldıktan sonra kaşlarını çatmanın diğer nedenleri arasında, bu dosyayı kullanan bazı programlar sadece içeriğin üzerine yazacak ve aynı dosyaya gitmesi gereken farklı komut dosyalarını uzlaştırmak zor olacaktır. İkincisi, Sonradan görme aslında dosya sistemi montaj bir sorun varsa yani, (emin dosya sistemi ilk olarak monte edilir yapma) sizin için kontrol bağımlılığını kolları olmazdöngü aygıtını kurmaya çalışın .... ama çözdükten ve monte ettikten sonra olacak. Üçüncüsü, Upstart çok daha esnektir: Örneğin, kullanılmayan bir döngü cihazı bulmak için yeterince akıllı olabilir ve "MOUNTPOINT" değişkenini nasıl kullandığımıza benzer şekilde, diğer uptart işlerinde kullanmak için bu döngü cihazını "yayabilir" yukarıdaki bu örnekte.
/etc/init.d/something
, ya da/etc/rc.local
, ama işe yarayan herhangi bir yöntem ile kalmak öneririz.