OpenRC

OpenRC
OpenRC logosu
YazarRoy Marples
GeliştiriciGentoo Geliştiricileri
İlk yayınlanma5 Nisan 2007 (19 yıl önce) (2007-04-05)
Güncel sürüm0.64.1 Bunu Vikiveri'de düzenleyin 23 Eylül 2026
Kod deposuhttps://github.com/OpenRC/openrc
Programlama diliC, sh
İşletim sistemiLinux, FreeBSD, NetBSD
Boyutu~1.6 MB
TürInit Servisi
LisansBSD Lisansı
Resmî sitesiResmî site Vikiveri ögesini düzenle

OpenRC, Unix benzeri işletim sistemleri için bağımlılık tabanlı bir başlatma sistemidir. Gentoo projesinde de aktif katkılarda bulunan NetBSD geliştiricisi Roy Marples tarafından oluşturulmuştur. C ve POSIX uyumlu shell dillerinde yazılmıştır, bu sayede BSD ve Linux sistemlerinde kullanılabilmektedir.

OpenRC Artix Linux'u başlatıyor.
Başlatma süreci

Kullanım

OpenRC, aşağıdaki dağıtımların varsayılan başlatma sistemi veya işlem denetleyicisidir:

Aşağıdaki dağıtımlar OpenRC'yi bir başlatma sistemi veya işlem denetleyicisi olarak kullanmayı destekler:

Tasarım


OpenRC, SysVinit'in sistemi ilk ayağa kaldırma (PID 1) görevini devralmak yerine, onun yavaş hizmet yönetim süreci olan "sysv-rc" altyapısının yerini almak üzere tasarlanmıştır. Sistem açılışında SysVinit tarafından tetiklenen OpenRC, init betiklerini ayrıştırarak (script parsing) servislerin bağımlılık sıralamasını ve çalışma seviyelerini (runlevel) yönetir; tüm servisleri başlattıktan sonra ise kendini tamamen kapatır.

0.25 sürümüyle tanıtılan "openrc-init" altyapısı kullanılarak SysVinit'e ihtiyaç duymadan doğrudan kendisi de PID 1 olarak çalışabilir. OpenRC, daemon yönetimi için Debian geliştiricileri tarafından yaratılmış start-stop-daemon yazılımın modifiye edilmiş bir sürümünü kullanmaktadır.


OpenRC'nin init betikleri, geleneksel sysVinit betikleriyle benzerlik gösterse de, betik oluşturmayı kolaylaştıran pek çok özellik sunar. Normal şartlarda bir servisi başlatmak, durdurmak ve durumunu kontrol etmek için ayrı ayrı kod yazmak gerekirken; OpenRC'de geliştiricinin sadece çalıştırılacak programın yolunu (değişken olarak) belirtmesi yeterlidir. Sistem bu değişkeni temel alarak start(), stop() ve status() gibi standart fonksiyonları kendisi otomatik olarak oluşturur. SysVinit sistemlerinde servis bağımlılıklarını belirtmek için kullanılan karmaşık LSB başlıkları (LSB headers) yerine, OpenRC'de çok daha temiz bir yapı sunan depend() fonksiyonu kullanılır.


0.21 sürümüyle birlikte gelen supervise-daemon bileşeni sayesinde OpenRC servis denetim (supervision) yeteneği kazanmıştır. Bu özellik aktif edildiğinde; supervise-daemon ilgili servisi başlatmakla kalmaz, aynı zamanda arka planda sürekli izleyerek çökmesi durumunda otomatik olarak yeniden başlatılmasını sağlar. OpenRC bu kendi yerleşik çözümünün dışında, runit ve s6 gibi diğer popüler üçüncü parti servis denetleyicilerini de resmi olarak desteklemektedir.

Özellikler

Kaynakça

  1. 1 2 "OpenRC - ArchWiki". wiki.archlinux.org. 10 Ekim 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Temmuz 2025.
  2. ↑ "Release 0.64.1". 23 Eylül 2026. Erişim tarihi: 23 Eylül 2026.
  3. ↑ "OpenRC sürüm geçmişi". GitHub. 26 Eylül 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2020.
  4. ↑ "NetBSD Geliştiricileri". NetBSD. 19 Temmuz 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2020.
  5. ↑ "OpenRC - Alpine Linux". wiki.alpinelinux.org. 18 Ekim 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Temmuz 2025.
  6. ↑ "Devuan ASCII 2.0.0 stable release". Devuan. 26 Ekim 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Ocak 2021.
  7. ↑ "Adding systemd for PostmarketOS". 26 Haziran 2025 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Haziran 2025.
  8. ↑ "Project rebrand". Nura (İngilizce). Erişim tarihi: 1 Ekim 2026.
  9. ↑ "OpenRC - Debian Wiki". wiki.debian.org. Debian. 28 Haziran 2025 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Temmuz 2025.
  10. ↑ "OpenRC/openrc-init". 6 Şubat 2023. Erişim tarihi: 7 Ekim 2023.
  11. ↑ "user guide". GitHub. 11 Aralık 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2020.
  12. ↑ "service script guide". GitHub. 11 Kasım 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2020.
  13. 1 2 "runit guide". GitHub. 8 Mart 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2020.
  14. ↑ "OpenRC'nin CGroups desteği hakkında (gentoo wiki)". wiki.gentoo.org. Gentoo. 25 Ocak 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Nisan 2020.
  15. ↑ "openrc/NEWS.md". GitHub. OpenRC Geliştiricileri. 28 Şubat 2025. 3 Eylül 2025 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Ekim 2026.