# Upstart Genel Bakış

Upstart, Canonical tarafından geliştirildi, bu yüzden bir süre Ubuntu’da init implementasyonu olarak kullanıldı, ancak modern Ubuntu kurulumlarında artık systemd kullanılıyor. Upstart, Sys V’deki katı başlangıç process’leri, görevlerin bloklanması vb. sorunları iyileştirmek için oluşturuldu. Upstart’ın event ve job odaklı modeli, event’ler gerçekleştiğinde bunlara yanıt vermesine olanak tanır.

Upstart kullanıp kullanmadığınızı öğrenmek için, **/usr/share/upstart** dizinine sahipseniz bu oldukça iyi bir göstergedir.

Job’lar Upstart’ın gerçekleştirdiği eylemlerdir ve event’ler, job’ları tetiklemek için diğer process’lerden alınan mesajlardır. Job’ların ve bunların yapılandırmalarının bir listesini görmek için:

```bash
pete@icebox:~$ ls /etc/init

acpid.conf                   mountnfs.sh.conf
alsa-restore.conf            mtab.sh.conf
alsa-state.conf              networking.conf
alsa-store.conf              network-interface.conf
anacron.conf                 network-interface-container.conf
```

Bu job yapılandırmalarının içinde, job’ların nasıl başlatılacağı ve ne zaman başlatılacağına dair bilgiler bulunur.

Örneğin, **networking.conf** dosyasında şöyle basit bir şey yazabilir:

```
start on runlevel [235]
stop on runlevel [0]
```

Bu, runlevel 2, 3 veya 5’te networking kurulumunun başlayacağı ve runlevel 0’da networking’in durdurulacağı anlamına gelir. Yapılandırma dosyasını yazmanın birçok yolu vardır ve mevcut farklı job yapılandırmalarına baktığınızda bunu keşfedeceksiniz.

Upstart’ın çalışma şekli şöyledir:

1. Önce, /etc/init içindeki job yapılandırmalarını yükler
2. Bir startup event’i gerçekleştiğinde, o event tarafından tetiklenen job’ları çalıştırır
3. Bu job’lar yeni event’ler oluşturur ve bu event’ler de daha fazla job’ı tetikler
4. Upstart, gerekli tüm job’ları tamamlayana kadar bunu yapmaya devam eder
