Pardus Terminalini Özgür Bırakın: Siz Başka İşle Uğraşırken O Çalışsın

Normalde terminali (pencereyi) kapattığınızda, o terminalin başlattığı tüm çocuk süreçler de ölür. Çünkü terminal kapanırken kendine bağlı herkese "SIGHUP" (Signal Hang Up - Telefonu Kapat) sinyali gönderir.

İşte uzun süren bir indirme işleminin veya yedeklemenin yarıda kalmamasını sağlayan iki kahramanımız: & (Ampersand) ve nohup.


1. Arka Plana Atmak: & (Ampersand) İşareti

Bir komutu yazıp sonuna & işareti koyarsanız, Pardus o komutu çalıştırır ama terminalin kontrolünü hemen size geri verir.

Örnek:

Diyelim ki masaüstünde gedit (Not Defteri) açacaksınız ama terminali bloke etmek istemiyorsunuz.

Bash:
gedit &
  • Ne olur? Not defteri açılır, ancak terminalde hemen yeni bir satır (prompt) belirir. Başka komutlar yazmaya devam edebilirsiniz.

  • Kritik Nokta: Bu yöntem süreci arka plana atar ama terminale bağlı kalmaya devam eder. Eğer terminal pencresini kapatırsanız, not defteri de (genellikle) kapanır.


2. Ölümsüzlük İksiri: nohup

Eğer terminali kapatsanız bile işlemin çalışmaya devam etmesini istiyorsanız, nohup (No Hang Up - Kapanma Sinyalini Yoksay) komutunu kullanmalısınız.

nohup, süreci terminalin gönderdiği o ölümcül "kapan" sinyalinden koruyan bir kalkandır.

Kullanımı (Genellikle & ile birlikte kullanılır):

Bash:
nohup uzun_suren_islem &

Senaryo: Uzun Bir Dosya İndirme

Diyelim ki internetten çok büyük bir dosya (Linux ISO dosyası) indireceksiniz ve bu saatler sürecek. Terminali açık beklemek istemiyorsunuz.

Adım 1: Komutu Hazırlayın

wget indirme komutunu nohup ile başlatın.

Bash:
nohup wget https://ornek.com/cok-buyuk-dosya.iso &

Adım 2: Çıktı Mesajı

Terminal size şöyle bir mesaj verecektir:

nohup: ignoring input and appending output to 'nohup.out'

Adım 3: Terminali Kapatın

Artık terminal pencresini gönül rahatlığıyla kapatabilirsiniz (exit yazarak veya çarpıya basarak). İndirme işlemi sunucuda sessizce devam eder.


Sık Sorulan Soru: "Ekranda Göreceğim Yazılar Nereye Gitti?"

Normalde terminal ekranına akan yazılar (indirme yüzdesi, hatalar vb.), terminal kapandığı için kaybolmaz. nohup, bu çıktıları otomatik olarak o an bulunduğunuz klasörde nohup.out isimli bir metin dosyasına yazar.

İşlemin durumunu kontrol etmek isterseniz bu dosyayı okuyabilirsiniz:

Bash:
# Dosyanın son 10 satırını canlı takip etmek için:
tail -f nohup.out

(Takibi bırakmak için Ctrl + C tuşlarına basın. Bu işlem indirmeyi durdurmaz, sadece dosya okumayı durdurur.)


Özet Tablo

KomutNe Yapar?Terminal Kapanırsa?
komutÖn planda çalışır. Terminali kilitler.İşlem durur (Ölür).
komut &Arka planda çalışır. Terminali kullanabilirsiniz.İşlem genellikle durur.
nohup komut &Hem arka planda çalışır hem de terminalden bağımsızlaşır.İşlem çalışmaya devam eder.

Şu ana kadar komutları hep siz elle yazdınız. Peki, siz uyurken veya tatildeyken bilgisayarınızın kendi kendine bakım yapmasını, yedek almasını veya güncelleme kontrolü yapmasını nasıl sağlarsınız?

Karşınızda Linux dünyasının zaman efendisi: Cron.


Zamanın Efendisi: Cron ve Crontab

Cron, Linux sistemlerinde belirli komutların veya scriptlerin (betiklerin) belirlenen zamanlarda otomatik olarak çalıştırılmasını sağlayan bir servistir. Bunu telefonunuzdaki "Alarm" uygulaması gibi düşünebilirsiniz, ancak çok daha yeteneklisidir.

1. Kavramlar: Cron vs Crontab

  • Cron: Arka planda sessizce çalışan ve "Vakit geldi mi?" diye saati kontrol eden servisin (daemon) adıdır.

  • Crontab (Cron Table): Hangi işlemin ne zaman yapılacağının yazıldığı listeyi (dosyayı) ve bu listeyi düzenleyen komutu ifade eder.


2. Crontab Dosyasını Açmak

Görev eklemek için özel bir komut kullanırız. Terminale şunu yazın:

Bash:
crontab -e

( -e parametresi Edit (Düzenle) anlamına gelir.)

İlk kez çalıştırıyorsanız: Pardus size "Hangi editörü kullanmak istersiniz?" diye sorabilir. Başlangıç için Nano (genellikle 1 numara) en kolay seçenektir.


3. Sihirli Formül: 5 Yıldız Kuralı (* * * * *)

Crontab dosyası açıldığında en alta inip komutlarımızı yazarız. Ancak buradaki söz dizimi (syntax) çok önemlidir. Her satır 5 zaman dilimi ve 1 komuttan oluşur.

Yapı şöyledir:

Dakika Saat Ayın_Günü Ay Haftanın_Günü Komut

SimgeAnlamıDeğer Aralığı
1. *Dakika0 - 59
2. *Saat0 - 23
3. *Ayın Günü1 - 31
4. *Ay1 - 12
5. *Haftanın Günü0 - 6 (0=Pazar, 1=Pzt...)

4. Örnek Senaryolar

Aşağıdaki satırları crontab -e ile açtığınız dosyanın en altına eklerseniz ne olur?

Örnek 1: Her Gece 03:30'da Yedek Al

Bilgisayarın en sakin olduğu saatte yedek.sh dosyasını çalıştırır.

Bash:
30 03 * * * /home/kullanici/scripts/yedek.sh

Örnek 2: Hafta İçi Her Sabah 08:00'de Günaydın De

Sadece Pazartesi'den Cuma'ya (1-5) çalışır.

Bash:
00 08 * * 1-5 echo "Günaydın Pardus!" >> /tmp/gunluk.txt

Örnek 3: Her 15 Dakikada Bir Çalış

/ işareti "her" anlamı katar.

Bash:
*/15 * * * * /usr/bin/python3 /home/kullanici/bot.py

Örnek 4: Bilgisayar Açıldığında Çalış (@reboot)

Zaman hesabı yapmadan, sistem her yeniden başladığında bir kez çalışır.

Bash:
@reboot /home/kullanici/baslangic_ayarlari.sh

5. Komutlarınızı Yönetmek

Oluşturduğunuz görevleri görmek veya silmek için şu komutları kullanabilirsiniz:

  • Listelemek için:

    Ben hangi görevleri eklemiştim?

    Bash:
    crontab -l
    
  • Silmek için (DİKKAT!):

    Tüm crontab dosyasını (bütün görevleri) siler. Geri dönüşü yoktur.

    Bash:
    crontab -r
    

    (Tek bir görevi silmek için crontab -e ile girip ilgili satırı silmeniz daha güvenlidir.)


6. Uzman İpucu: Çıktıları Yönetmek

Cron sessiz çalışır. Eğer komutunuz bir hata verirse bunu ekranda göremezsiniz. Bu yüzden çıktıları bir "Log" (Kayıt) dosyasına yönlendirmek hayati önem taşır.

Örnek:

Bash:
* * * * * /home/script.sh >> /home/loglarim.txt 2>&1
  • >>: Çıktıyı dosyanın sonuna ekler (Dosyayı silmez).

  • 2>&1: Hataları da standart çıktı ile aynı dosyaya yazar. Böylece hem başarıyı hem hatayı görürsünüz.


Özet:

Cron, Pardus'un görünmez asistanıdır. Ona bir kez emir verirsiniz (örneğin: "Her ayın 1'inde disk temizliği yap") ve o bunu sonsuza kadar aksatmadan yerine getirir.


Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu