Fedora 16 Sistem Açılışında Yönetici Olarak Komut Çalıştırmak
Öncelikle bu yazıyı yazmama neden olan problemimi bir tanımlayayım. Durum bugüne kadar kolaylıkla yapmış olduğum ancak Fedora 16'nın mevcut yöntemlerime cevap vermediği bir durum. Olay benim Conky yardımıyla işlemci sıcaklığını görmek istemem ve dolaylı olarak sistem açılırken root olarak bir komut çalıştırmaya ihtiyacım olması, detaylar ise şöyle:Conky'de işlemci sıcaklığını gösteren aşağıdaki gibi basit bir bash script dosyası yazdım
bu komutlar benim 1. işlemcimin sıcaklığını lm-sensors paketi yardımıyla birazda karakter katarında değişiklik yaparak görüntülememi sağlıyor..sensors komutu ise aşağıdaki çıktıyı veriyor
1 2 | Core 0: +33.0 C (high = +76.0 C, crit = + 100.0 C) Core 1: +28.0 C (high = +76.0 C, crit = + 100.0 C) |
tabi bu çıktıları görebilmem için önceden "sudo modprobe coretemp" komutu ile coretemp modülünü yüklemiş olmam gerekli. Sorun da burada başlıyor zaten, bu komutu başlangıçta yüklenen normal bir dosya içine yazamıyorum çünkü root şifresi isteyecek dolayısıyla otomatik çalışmayacak, sistem izinlerini de bu kadar basit bir işlem için genişletmek istemiyorum.
Bu zamana kadar kullandığım yöntem başlangıçta root olarak çalıştırmam gereken komutları /etc/rc.local dosyası içine yazmaktı ancak Fedora 16'da böyle bir dosya bulamadım, kendim oluşturduğumda ise sistem bu dosyayı çalıştırmadı, chkconfig paketinden yararlanarak bulduğum çözüm ise şöyle:
Önce /etc/init.d klasörünün içinde herhangi bir isimle bir dosya oluşturuyorum ve onu çalıştırılabilir yapıyorum
bu dosyanın içinde olması gereken kodlar ise şöyle
1 2 3 4 5 6 7 8 9 | #!/bin/bash # modcoretemp # chkconfig 345 20 80 # description: baslangicta calisacak dosyam # /etc/init.d/modcoretemp modprobe coretemp exit 0 |
burada chkconfig için özel olarak tanımladığım yalnızca 3. satır. Burada bu servisin 3, 4 ve 5. seviyelerde çalışacağını ve başlatma ve sonlandırma önceliklerini tanımladım, eğer bu konuda bir bilginiz yoksa siz de aynen böyle kullanabilirsiniz. Gerekli komutum "modprobe coretemp" çalıştıktan sonra da hiç birşey yapmadan çıkması için "exit 0" komutunu veriyorum. Gelelim bu dosyayı başlangıçta çalışan servisler arasına nasıl ekleyeceğimize. Bu iş için de chkconfig komutunu aşağıdaki gibi veriyorum
bu komut gerekli işlemleri yaparak benim dosyamdaki komutların başlangıçta bir servis gibi çalışmasını sağlayacak. Ayrıca başlangıçta çalışan diğer benzer servisleri yönetmek için de ntsysv paketini kullanabilirsiniz
komutu ile hangi servisin başlangıçta çalışıp çalışmayacağını ayarlayabilirsiniz.