Linux İşletim Sistemlerinde Sistem Açılışını Hızlandırmak

Son zamanlarda Ubuntu ile gelen upstart,Pardusun açılış yöneticisi gibi açılışı hızlandırmaya yönelik gelişmeler var.
Upstart ve Pardus taki yapıyı inceleme şansım olmadı fakat eğer bu sistemleri kuramıyacağınız bir bilgisayarda çalışıyorsanız bu hız artırımını kendi sisteminiz için de yapabilirsiniz.
Linux açılışta /etc/init.d altındaki scriptleri rcX.d (X o anki çalışma zamanı seviyesi (runtime level)) klasöründeki numara sırasına göre sıra ile çalıştırır.Genelde en son GDM,KDM,XDM çalıştırılır ve hemen ardından görsel login ekranı gelir.
Bu bilgiyi kullanarak eğer sistemimizde bu init işlemi sırasında çalışması zorunlu olmayan process’ler var ise bunları ilgili scriptlerini düzenleyerek daha sonra elle başlatılabilecek şekilde yeniden düzenlersek initi sırasında gereksiz yere zaman harcanan processler daha sonraya atılmış olur ve doğal olarak 1-2 sn lik bir hız artışı sağlanır hatta processe bağlı olarak bu süre daha da artabilir ama tabi ki mucize de beklememek lazım sonuçta her işlem bir süre alıyor.
Script dosyasını nasıl düzenlemek lazım ki daha sonra elle çalıştırayım derseniz benim kendimce bulduğu bir çözüm var : scriptin parametrelerini yeniden düzenleme.
Bendeki /etc/init.d/apache2 scriptinin önemli kısımları şöyle :

#!/bin/sh -e

buralarda fonksiyonlar degiskenler tanimli

#case $1 in
start)

init scriptleri genelde şu şekilde çalıştırılıt script_adi start start scripte gönderilecek parametredir ve $1 ilk parametreyi temsil eder 2 tane parametre alsa idi 2.parametreyi $2 ile alırdık.
Benim amacım tek parametreli scripti 2 parametreli hale getirerek elle başlatabilmek.bunun için ilk parametreyi “hand” olarak belirliyorum 2.parametre de {start|stop..} gibi giden normal parametreler.
scripti çalıştırabilmek için script_adi hand startkomutunu verebileceğimiz hale getirmemiz lazım scripti.
Bunun için scriptte şöyle değişiklikler oldu:

#!/bin/sh -e

#bu kisim ile ilk parametre hand degilse cikilacak,init asamasinda
#start,stop parametresi verildigi icini dogal olarak bu script acilista calismayacak
if [ “$1” != “hand” ]; then
exit
fi

#2.parametre COMMAND degiskenine atandi boylece 2 parametre ile baslama saglanir
COMMAND=”$2″

#case $1 in -> bu eski ifade yorum yaptım ki hata yapmissam geri dondurmesi
#kolay olsun.
case $COMMAND in
start)

scriptin hemen başına ilk parametrenin “hand” oldup olmadığını kontrol eden kodlar yazdım init aşamasında scriptler hep start ile başlatıldığı için belirlediğim hand parametresine eşit olmayacaklar ve çalışmayacaklar.eğer parametre “hand” ise bu scriptin çalıması gerekli bunu sağlamak içinde 2.parametreyi case içinde tanınacak hale getirmeliyiz.Bunun için COMMAND değişkenine $2 yi yani 2.parametreyi atıyorum ve scriptin en sonlarında yer alan case bloğundaki “case $1 in” yerine “case $COMMAND in” yazıyorum böylece COMMAND değişkeninin içerdiği 2.parametreyi de kullanmış olduk.
Scriptleri bu şekilde yeniden düzenleyerek hız artışı sağlarız,burada dikkat etmemiz gereken şey daha sonra açılsa da sorun olmayacak scriptleri bilebilmek,çalışması gerekli olan bir script var ise bunun çalışmasını engellerseniz büyük ihtimalle sistem de bazı programlar çalışmayacaktır.

Loading Facebook Comments ...

Leave a comment

 Characters available