Upstart ve systemd'in artıları / eksileri nelerdir?


183

Bu görünür systemd sıcak yeni init blokta sistem, aynı sonradan görme bir kaç yıl önce oldu. Her biri için artıları / eksileri nelerdir? Ayrıca, her biri diğer init sistemleriyle nasıl karşılaştırılır?


4
@keith iirc openrc basitçe SysV, avantaj İyi bir temizlik var, ama gerçekten yeni bir initd ortak bileşenleri kullanmak ve (herhangi bir kabuk üzerinde çalışmaya anlamında) taşınabilir başlatma komut iyi tasarlanmış bir koleksiyon kullanır
xenoterracide

@ xeno Yapar, ama gerçekten söyleyemezsin. hiçbir rcX.d veya [KS] sembolik bağlantısı yok. Aslında sysv init'in kendisi oldukça esnektir ve çalışma seviyeleri normal şekilde kullanılmaz.
Keith

Her ne kadar bu blogun yazarı sisteme aykırı olsa da, bir okuma yapmanızı öneriyorum. Bu systemd ve BSD init artılarını ve eksilerini giderir. textplain.net/blog/2015/…
Peschke


Sistemin iddia ettiği herhangi bir avantaj, 100 yıl içinde bunu uygulamak için dünyaya katlanılan maliyeti telafi etmeyecektir. Bir Unix yöneticisi tarafından bu çöplerle başa çıkmak için harcanan her dakika veya saat veya gün, milyarlarca ilaveye ve bir kaç zil ve ıslık dışında ne gibi gerçek faydalara sahip olmalı?
Waslap

Yanıtlar:


90

2016 Güncellemesi

Buradaki çoğu cevap beş yaşında, bu yüzden bazı güncellemelerin zamanı geldi.

Ubuntu başlangıçta varsayılan olarak kullanıyordu, ancak geçen yıl systemd lehine terk ettiler - bkz:

Bu nedenle Ubuntu wiki'de Upstart Users için güzel bir Systemd makalesi var - upstart ve systemd ile upstart'tan systemd'e geçiş rehberi arasında çok detaylı bir karşılaştırma yapıldı.

( Ubuntu wiki'sine göre, Ubuntu'nun geçerli sürümlerinde varsayılan olarak hala yükleyerek upstart-sysvve çalıştırarak çalıştırabilirsiniz, sudo update-initramfs -uancak systemd projesinin kapsamını göz önünde bulundurarak pratikte nasıl çalıştığını veya systemd olup olmadığını bilmiyorum. kaldırmak mümkün.)

Aşağıdaki Komutlar ve Komut Dosyaları bölümlerindeki bilgilerin çoğu, bu makalede kullanılan bazı örneklerden uyarlanmıştır (bu, yalnızca Creative Commons Attribution-ShareAlike 3.0 Lisansı altındaki Stack Exchange kullanıcı katkıları gibi uygun şekilde lisanslanmıştır ).

Yaygın komutların ve basit komut dosyalarının hızlıca karşılaştırılması, ayrıntılı açıklama için aşağıdaki bölümlere bakın. Bu cevap, Upstart tabanlı sistemlerin eski davranışlarını, soruda belirtildiği gibi, systemd tabanlı sistemlerin yeni davranışlarıyla karşılaştırıyor, ancak "Upstart" olarak etiketlenen komutların mutlaka Upstart'a özgü olmadığını unutmayın - genellikle komutlardır. her sistem dışı Linux ve Unix sistemi için ortaktır.

Komutları

Su çalışan:

  • sonradan görme: su
  • systemd: machinectl shell

(aşağıdaki "su komutu değiştirme" bölümüne bakın)

Çalışan ekran:

  • sonradan görme: screen
  • systemd: systemd-run --user --scope screen

(aşağıdaki "Beklenmeyen arka plan işlemlerinin öldürülmesi" bölümüne bakın)

Çalışan tmux:

  • sonradan görme: tmux
  • systemd: systemd-run --user --scope tmux

(aşağıdaki "Beklenmeyen arka plan işlemlerinin öldürülmesi" bölümüne bakın)

İş başında foo:

  • sonradan görme: start foo
  • systemd: systemctl start foo

İş foo'yu durdurmak:

  • sonradan görme: stop foo
  • systemd: systemctl stop foo

İş foo'yu yeniden başlatma:

  • sonradan görme: restart foo
  • systemd: systemctl restart foo

Liste işleri:

  • sonradan görme: initctl list
  • systemd: systemctl status

İş foo yapılandırmasını kontrol etme:

  • sonradan görme: init-checkconf /etc/init/foo.conf
  • systemd: systemd-analyze verify /lib/systemd/system/foo.service

İşin ortam değişkenlerini listeleme:

  • sonradan görme: initctl list-env
  • systemd: systemctl show-environment

İşin ortam değişkenini ayarlama:

  • sonradan görme: initctl set-env foo=bar
  • systemd: systemctl set-environment foo=bar

İşin ortam değişkenini kaldırma:

  • sonradan görme: initctl unset-env foo
  • systemd: systemctl unset-environment foo

Kütükler

Başlangıçta, günlükler / var / log / upstart dizinindeki normal metin dosyalarıdır, böylece onları her zamanki gibi işleyebilirsiniz:

cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log

Sistemd'de günlükler dahili bir ikili formatta (metin dosyaları olarak değil) saklanır, bu nedenle journalctlbunlara erişmek için komut kullanmanız gerekir:

sudo journalctl -u foo
sudo journalctl -u foo -f

Kodlar

Yazılan örnek başlangıç ​​betiği/etc/init/foo.conf :

description "Job that runs the foo daemon"
start on runlevel [2345]
stop on runlevel [016]
env statedir=/var/cache/foo
pre-start exec mkdir -p $statedir
exec /usr/bin/foo-daemon --arg1 "hello world" --statedir $statedir

Örnek systemd senaryo yazılmış /lib/systemd/system/foo.service:

[Unit]
Description=Job that runs the foo daemon
Documentation=man:foo(1)
[Service]
Type=forking
Environment=statedir=/var/cache/foo
ExecStartPre=/usr/bin/mkdir -p ${statedir}
ExecStart=/usr/bin/foo-daemon --arg1 "hello world" --statedir ${statedir}
[Install]
WantedBy=multi-user.target

su komutu değiştirme

su# 1022 çekme isteğinde bir komut değiştirme sistemde birleşti:

Çünkü, Lennart Poettering’e göre “su gerçekten kırılmış bir kavram” .

O açıklıyor "Daha önce olarak su ve sudo kullanabilirsiniz, ancak bunun tam olarak çalışacağını sanmıyoruz " .

Bir subenzeri davranış elde etmenin resmi yolu şudur:

machinectl shell

Bundan başka edilmiş Lennart Pöttering ile açıklanabilir # 825 sorunu tartışmada:

“Eh, bu konuda uzun tartışmalar oldu, ama sorun şu ki, su ne yapması gereken çok net değil. […] Uzun lafın kısası: su gerçekten kırılmış bir kavram. , ve bunun için kullanmak iyidir, ancak bu tam bir giriş değildir ve bunun için yanlış olmamalıdır. " - Lennart Poettering

Ayrıca bakınız:

Beklenmedik arka plan işlemlerinin öldürülmesi

Gibi komutlar:

artık beklendiği gibi çalışmıyor . Örneğin, nohupoturumunuzdan çıktıktan sonra işlemin devam etmesini sağlamak için bir POSIX komutudur. Artık systemd üzerinde çalışmıyor . Ayrıca gibi programlar screenve tmuxözel bir şekilde çağrılacak veya başka ihtiyaç onlarla koşmak süreçleri öldürdü alacak (ilk etapta ekranı veya tmux çalışan ana nedeni genellikle ölenlerin süreçleri almıyor iken).

Bu bir hata değil, bilinçli bir karardır, bu nedenle gelecekte düzeltilmesi muhtemel değildir. Lennart Poettering'in bu konuda söylediği şey:

Benim görüşüme göre, UNIX'in varsayılan olarak oturumu kapattıktan sonra keyfi kullanıcı kodunun sınırsız kalmasına izin vermesi oldukça garipti. Günümüzde birçok işletim sistemi çalışanı arasında, bunun mümkün olması, ancak kesinlikle varsayılan olmaması gerektiği tartışılmıştır, ancak şimdiye kadar hiç kimse anahtarı bir varsayılandan bir seçeneğe çevirmek için düğmeyi çevirmeye cesaret edemedi. Oturumu kapattıktan sonra kullanıcı oturumlarını temizlememek sadece çirkin ve biraz da rahatsız edici değil, aynı zamanda bir güvenlik sorunudur. systemd 230 şimdi nihayet anahtarı çevirdi ve nihayet varsayılan olarak kullanıcı oturumu kapattığında her şeyi doğru temizledi.

Daha fazla bilgi için bakınız:

Üst seviye başlangıç ​​konsepti

Bir şekilde systemd geriye doğru çalışır - başlangıçta işler olabildiğince çabuk başlar ve sistemd'de işler gerektiğinde başlar. Günün sonunda aynı işler her iki sistem tarafından ve hemen hemen aynı sırayla başlatılabilir, ancak konuşmak için ters yönden bakmayı düşünürsünüz.

İşte Başlangıcı Kullanıcıları için Systemd şöyle açıklıyor:

Sonradan görme süreçleri (iş) başlama 'ın modeli 'açgözlü olay tabanlı' dir, kimin başlangıç olaylar meydana olabildiğince erken başlatılır yani mevcut tüm işler. Önyükleme sırasında upstart, başlangıç ​​veya rcS gibi bazı başlangıç ​​olaylarını "ağaç kökü" olarak sentezler, erken hizmetler bunlar üzerinde başlar ve daha sonra eski hizmetler çalışır. Yeni bir işin aktif olabilmesi için yapılandırma dosyasını / etc / init / içine yüklemesi yeterlidir.

sistemin başlangıç ​​işlemleri için sistemi (birimler) "tembel bağımlılığa dayalı" dır, yani bir birim ancak başka bir başlangıç ​​biriminin buna bağlı olması durumunda başlayacaktır. Önyükleme sırasında, systemd "root unit" (varsayılan.target, grubun içinde geçersiz kılınabilir) başlatır, bu daha sonra geçişsel olarak genişler ve bağımlılıklarına başlar. Yeni bir ünitenin aktif olabilmesi için kendini önyükleme sırasının bir birimine (genellikle multi-user.target) bağımlı olarak eklemesi gerekir.

Dağıtımlarda kullanım

Şimdi Wikipedia'ya göre bazı yeni veriler:

Varsayılan olarak upstart kullanan dağıtımlar:

Varsayılan olarak systemd kullanan dağılımlar:

( En güncel bilgiler için Wikipedia'ya bakın )

Ne Upstart ne de systemd kullanan dağılımlar:

tartışma

Geçmişte , sistemin önüne geçmek için bir Debian çatalı önerildi . Devuan GNU + Linux yaratıldı - systemd olmadan Debian bir çatal (sayesinde fpmurphy1 yorumlar kısmında işaret için).

Bu tartışma hakkında daha fazla bilgi için, bakınız:

Birçoğunuzun zaten bildiği gibi, Ian Jackson tarafından teşvik edilen Init GR Debian oyları, Debian'ın mirasını ve kullanıcılarını sistemdeki çığdan korumakta yardımcı olmadı.

Bu durum, kalkınma özgürlüğünü fiilen tehdit eden fiili olan ve Debian, yukarı havası ve aşağı havası için ciddi sonuçları olan sistem bağımlılıklarında kilitlenme beklemektedir.

CTTE, bir bağımlılığı değiştirmeyi başardı ve bize svinvinit üzerindeki ince bir sistem kurulumunda bize zaman kazandırdı, ancak bu süreç bile yorucu ve drama dolu idi. Sonuçta, bir hafta önce, Ian Jackson istifa etti. [...]

Derhal yürürlüğe girerek Teknik Komiteden istifa ediyorum.

Benimle aynı fikirde olan projenin% 30-40'ının görüşlerinin TC'de temsil edilmeye devam etmesi önemli olsa da, bu noktada bunu yapmak için kesinlikle tartışmalıyım. Projenin yönetimi hakkındaki konuşmaların ne ölçüde kişiselleştirileceğini azaltmaya çalışmak için kenara çekilmeliyim. [...]

Devuan, Debian için varsayılan init sistemi olarak kullanma kararı konusundaki tartışmalardan doğdu. Sistemdeki resmi Debian pozisyonu, başkalarının borçlarını aldıklarını iddia ediyor . İlgilenen okuyucular, bu tartışmalı konu başlıklarını sistem tartışması bölümünde tartışmaya devam edebilir . Ancak, kafanızı serin ve sesinizi sivil tutmanız için teşvik ediyoruz. Devuan'da geriye dönüp bakmak yerine yanlış programlama yapmakla ilgileniyoruz. [...]

Sistem tartışmasına adanmış bazı web siteleri ve makaleler oluşturuldu:

Orada bir sürü Hacker News ilginç tartışma:

Diğer dağıtımlardaki benzer eğilimler de gözlemlenebilir:

Felsefe

upstart , DOTADIW'ın Unix felsefesini izliyor - "Bir Şey Yap ve İyi Yap." Geleneksel init daemonunun yerine geçmiştir. Hizmetleri başlatmak ve durdurmaktan başka bir şey yapmaz. Diğer görevler diğer uzmanlaşmış alt sistemlere devredilmiştir.

systemd bundan daha fazlasını yapar. Hizmetlerin başlatılması ve durdurulmasının yanı sıra, parolaları, girişleri, terminalleri, güç yönetimini, fabrika sıfırlamalarını, günlük işlemlerini, dosya sistemi bağlama noktalarını, ağları ve daha fazlasını da yönetir - bazı özellikler için NEWS dosyasına bakın .

Genişleme planları

Göre Elde ve What Lies Ahead Has Been Ne systemd için bir Perspektif GNOME.asia de 2014 yılında Lennart Pöttering tarafından sunum, burada systemd ana hedefleri, zaten kapalı ve halen devam edildi olanlar edilen alanlar;

sistem hedefleri:

Hedeflerimiz

  • Bir bit torbasından Linux'u rekabetçi bir Genel Amaçlı İşletim Sistemine dönüştürmek.
  • İnternetin Yeni Nesil İşletim Sistemini Kurmak Dağıtımlar arasındaki anlamsız farkları birleştirmek
  • Yeniliğin temel işletim sistemine geri getirilmesi

  • Masaüstü, Sunucu, Konteyner, Gömülü, Mobil, Bulut, Küme,. . . Bu alanlar birlikte düşündüğünüzden daha yakın

  • Yönetici karmaşıklığını azaltmak, gözetim olmadan güvenilirlik
  • Her şey içilemez
  • Otomatik keşif, tak ve çalıştır özelliği anahtardır
  • Kırıldıkları şeyleri düzeltiriz, asla bantlanmadık

Zaten kapsanan alanlar:

Zaten neyi koruduğumuz:

init sistemi, günlük kaydı, giriş yönetimi, cihaz yönetimi, geçici ve geçici dosya yönetimi, ikili format kaydı, arka ışık kaydet / geri yükle, rfkill kaydet / geri yükle, bootchart, yeniden okuma, şifreli depolama ayarları, EFI / GPT bölüm bulma, sanal makine / konteyner kayıt, minimum kap yönetimi, ana bilgisayar adı yönetimi, yerel yönetim, zaman yönetimi, rastgele tohum yönetimi, sysctl değişken yönetimi, konsol yönetimi. . .

Çalışma devam ediyor:

Ne üzerinde çalışıyoruz:

  • ağ yönetimi
  • systemd-networkd
  • Yerel DNS önbelleği, mDNS yanıtlayıcısı, LLMNR yanıtlayıcısı, DNSSEC doğrulaması
  • Çekirdekte IPC
  • kdbus, sd-bus
  • NTP ile zaman senkronizasyonu
  • systemd-timesyncd
  • Konteynerlerle daha fazla entegrasyon
  • Hizmetlerin Sanallaştırılması
  • Apps Sandboxing
  • Os görüntü formatı
  • Konteyner görüntü formatı
  • Uygulama görüntü formatı
  • Otomatik keşif özellikli GPT
  • Vatansız sistemler, anlık sistemler, fabrika ayarlarına sıfırlama
  • / usr işletim sistemidir
  • / etc (isteğe bağlı) yapılandırma
  • / var (isteğe bağlı) durum
  • Atomik düğüm başlangıcı ve güncellemeleri
  • Bulut ile entegrasyon
  • Düğümler arasında servis yönetimi
  • Doğrulanabilir işletim sistemi görüntüleri
  • Firmware'e kadar
  • Önyükleme Yükleniyor

Bu cevabın kapsamı

Fpmurphy1'in yorumlarında belirttiği gibi , " Sistemdinin çalışma alanını yıllar içinde, sistemin başlamasından çok daha fazla genişlettiğine işaret edilmelidir."

İlgili bilgilerin çoğunu buraya eklemeye çalıştım. Burada, Upstart ile systemd'in ortak özelliklerini karşılaştırarak, soruda init sistemler olarak kullanıyorum ve sadece init sistemlerin kapsamının ötesine geçen systemd özelliklerinden bahsettim, çünkü bunlar Startup ile karşılaştırılamaz, ancak bunların varlığı önemlidir. Bu iki proje arasındaki farkı anlamak. Daha fazla bilgi için ilgili dokümantasyon kontrol edilmelidir.

Daha fazla bilgi

Daha fazla bilgi bulunabilir:

Ekstralar

LinOxide Takım bir yarattı SysV Init Linux Pardus vs systemd .


4
... ve böyle bir Debian çatalı oluştu. Devuan GNU + Linux, sistemsiz bir Debian çatalıdır.
fpmurphy

2
Sistemin, çalışma kapsamını, sistemin başlatılmasının çok ötesine yıllar içinde genişlettiğine dikkat edilmelidir.
fpmurphy

1
Olağanüstü posta ve Cent adam için son derece yararlı. Zaman ayırdığınız için teşekkür ederim efendim !!!
origin1tech

4
@ronsmith service <foo> start/stop/restart/statushala iyi çalışıyor. Çoğu unix yazılımı gibi, systemd de bilinen varsayılanlara komut uyumluluğu sağlar.
Shadur

2
Çok iyi cevap. Yine de bir nokta: BSD işletim sistemleri Linux dağıtımları değil: kendi çekirdeğine sahip farklı Unix işletim sistemleri.
Giorgio,

68

Hem start-up hem de systemd, geleneksel SysV init sisteminin sınırlamaları ile bazı problemleri çözme girişimleridir. Örneğin, bazı servislerin diğer servislerden sonra başlaması gerekir (örneğin, ağ çalışana kadar NFS dosya sistemlerini bağlayamazsınız), ancak SysV'de işlemek için tek yol, bağlantıları rc # .d dizininde ayarlamaktır. öyle ki biri diğerinden önce. Buna ek olarak, bağımlılıklar eklendiğinde veya değiştirildiğinde, her şeyi daha sonra yeniden numaralandırmanız gerekebilir. Upstart ve Systemd, gereksinimleri tanımlamak için daha akıllı ayarlara sahiptir. Ayrıca, her şeyin bir tür kabuk betiği olduğu ve herkesin en iyi init betiğini yazmamasıyla ilgili bir sorun var. Bu aynı zamanda başlangıç ​​hızını da etkiler.

Gördüğüm sistemin avantajlarından bazıları:

  • Başlatılan her işlem kendi grubunu veya belirli bir grubunu alır.
  • Xinetd'nin hizmetleri için yaptığı gibi, hizmetler için soketlerin ve dosya tanıtıcılarının önceden oluşturulması, bağımlı hizmetlerin daha hızlı başlamasını sağlar. Örneğin, systemd syslog için / dev / log dosya kancasını açık tutacak ve / dev / log'a gönderilen sonraki servislerde syslogd ele geçirilinceye kadar mesajlarının tamponlanmasına neden olacaktır.
  • Daha az işlem aslında bir hizmeti başlatmak için çalışır. Bu, hizmetinizi başlatmak için bir kabuk betiği yazmadığınız anlamına gelir. Bu, hız artışı olabilir ve (IMO) ilk etapta kurulması daha kolay bir şey olabilir.

Bildiğim bir dezavantaj, sistem soketinin / FH ön tahsisatının avantajlarından yararlanmak için, FH'nin sistemd tarafından kendilerine geçmesi için birçok daemonun yamalanması gerekmesidir.


13
PulseAudio , aslen sistemin yazarı olan Lennart Poettering tarafından yazılmış, çok malign bir ses sistemidir ( pulseaudio.org ). Çoğunlukla şaka yapıyordum, çünkü pulseaudio hakkında şikayet etmeyi seven birkaç kişi tanırım ve onların da sistemdekilerden şikayetçi olduklarından eminim. Açıkçası, ne sistemde ne de pulseaudioda bir sorun yaşamadım.
jsbillings

4
Plan9'un bereketli kuşları için neredeyse bir çam yapar ... her şey bir dosyadır.
dhchdhd

4
Dürüst olmak gerekirse, pulseaudio var olmayan bir problemin çözümü idi. PA’nın ALSA’nın yapamayacağı hiçbir şey yok ve ben PA’yla ilgili sorunları olan insanların çoğunu tekrar tekrar duydum.
WhyNotHugo

3
Kaçırdığınız iki sistem dezavantajı: (1) tüm başlangıç ​​komut dosyalarının yeniden yazılması gerekiyor. (2) Linux dışı işletim sistemleriyle (örneğin BSD'ler gibi) daha az uyumluluk var.
WhyNotHugo

8
Harika. Lütfen 0pointer.de/blog/projects/the-biggest-myths adresine bakınız . Sistemin büyümesine tanık oldum ve burada verilen eleştirilerin çoğunun tamamen temelsiz olduğunu kanıtlayabilirim. Bağlantıda, gerekçeli çürütücü , darbe ile bir darbe bulacaksınız .
von

30

Testere systemdbelirtilen Arch Genel ML bugün. Bu yüzden okumaya devam et. H Online , Linux Teknolojisi için harika bir kaynak ve SysV Init ve Upstart alternatifi olarak Systemd'i araştırmaya başlamak için yerimi bulduğum yer . Bununla birlikte, H Online makalesi (bu durumda) çok kullanışlı bir okuma değildir, arkasındaki asıl kullanım faydalı okumalara bağlantılar vermesidir.

Asıl cevap sisteme duyuruda . SysV initd'de neyin yanlış olduğu ve hangi yeni sistemlerin yapılması gerektiğine dair çok önemli noktalar

  • Daha az başlamak için.
  • Ve daha paralel olarak başlamak için.

Bunu yapmanın asıl planı, hizmetleri yalnızca gerektiği gibi başlatmak ve bu hizmet için bir soket başlatmak gibi görünmesidir; böylece, ihtiyacı olan hizmet, arka plan programı tam olarak çevrimiçi olmadan önce oluşturulan sokete bağlanabilir. Görünüşe göre bir soket az miktarda tamponlanmış veri tutacaktır, bu da gecikme sırasında hiçbir veri kaybı olmayacak, arka plan programı çevrimiçi olur olmaz ele alınacaktır.

Planın diğer kısmı, sizinle ilgili bekleyen değiliz bu şekilde dosya sisteminin seri, ancak bunun yerine de talep üzerine bu monte değil gibi görünüyor /home/, vb (ile karıştırılmamalıdır /etcmonte etmek) ve / veya fscksize olabilecekken start damononları /ve /var/etc, zaten monte edildi. Bu amaçla autofs kullanacağını söyledi.

Ayrıca .desktopbetiklerin yerine stil init tanımlayıcıları oluşturma hedefine sahiptir . Bu yavaş ton önleyecektir shsüreçler ve benzeri şeylerden süreçlerin daha çatalları sedve grepsık sık kabuk komut kullanılır.

Ayrıca, istenene kadar bazı hizmetleri başlatmamayı planlıyorlar ve belki de artık gerekmediğinde belki de onları kapatıyorlar, bluetooth modülü ve arka plan programı yalnızca örneğin bir bluetooth cihazı kullanırken gereklidir. Verilen başka bir örnek ssh daemon. Bu inetd yetenekli bir şeydir. Şahsen, bundan hoşlandığımdan emin değilim, çünkü ihtiyaç duyduğumda gecikme süresi anlamına gelebilir ve ssh söz konusu olduğunda, eğer sisteme girdiğimde tüm sistem tehlikeye girerse, olası bir güvenlik açığı anlamına gelir. Ancak, bu sistemi ihlal etmek için kullanmanın olanaksız olduğu ve eğer istersem bu özelliği hizmet başına ve başka şekillerde devre dışı bırakabileceğim konusunda bilgilendirildim.

Diğer bir özellik, zamana bağlı olarak, düzenli aralıklarla ya da belirli bir zamanda başlayabilmektir. Bu şimdi ne yapmak crondve atdyapmak benzer . Bana kullanıcı "cron" desteklemeyeceği söylenmişti. Şahsen bu en anlamsız şey gibi geliyor. Bunun çok kullanıcılı ortamlarda çalışmayan insanlar tarafından yazılmış / düşünülmüş olduğunu düşünüyorum, sistemde root olarak çalışmama dışında tek kullanıcı sizseniz, kullanıcı cronunun çok fazla amacı yoktur. Günlük çok kullanıcılı sistemlerde çalışıyorum ve kural her zaman kullanıcı komut dosyalarını kullanıcı olarak çalıştırıyor. Ama belki onların yaptıkları tahminlere sahip değilim, ve hiçbir şekilde koşamayamamı sağlayacak şekilde yapamayacak , crondya da atdsanırım geliştiricilerin dışında kimseye zarar vermeyecek.

Sistemin en büyük dezavantajı, tüm avantajlardan tam anlamıyla yararlanabilmek için bazı ödemelerin değiştirilmesi gerekmesidir. Şimdi çalışacaklar, ancak özellikle soket modeli için yazılmışlarsa daha iyi çalışırlar.

Sistem halklarının başlangıçta yaşadıkları problemin olay sistemi olduğu ve bunun anlamsız ya da gereksiz olduğuna inandıkları anlaşılıyor. Belki onların sözleri en iyisidir.

Ya da daha basit hale getirmek için: kullanıcının D-Bus'ı yeni başlatmış olması, hiçbir şekilde NetworkManager'ın da başlatılması gerektiğinin bir göstergesi değildir (ancak Upstart'ın yapacağı şey budur). Tam tersi doğrudur: kullanıcı NetworkManager'ı sorduğunda, bu kesinlikle D-Bus'ın da başlatılması gerektiğinin bir göstergesidir (kesinlikle çoğu kullanıcının beklediği şey nedir?).
İyi bir init sistemi sadece ihtiyaç duyulan ve talep üzerine başlamalıdır. Tembel ya da paralelleştirilmiş ve önceden. Bununla birlikte, gerekenden daha fazla başlamamalıdır, özellikle bu servisi kullanabilecek her şey kurulmamalı.

Daha önce de söylediğim gibi, bu sistemd'in ilanında çok daha kapsamlı bir şekilde tartışılmaktadır .


üzgünüm ama duyuru bir kitap gibi. Buraya daha fazlasını dahil etmeden önce okumak ve okumak zorundayım.
xenoterracide

2
Bu nasıl John'un cevabından daha iyi? Yer tutucu mu? H Çevrimiçi bir promosyon ?
tshepang

1
@ tshepang iyi aslında d d duyuru bağlantılar ve h çevrimiçi şeyler o ve diğer ilginç bağlantılar vardır. çok sıkıcı bir okuma. Bir kere daha ekledikten sonra ekleyebilirim ... bu basit bir konu değil . Bunu yazdığımda okumaya daha erken başlamak isteyebileceğini düşündüm. ama beni rahatlatmaktan çekinmeyin. kesinlikle @ jsbillings cevap iyi ve şimdiye kadar benimki daha iyi. ama duyuru okumak kadar iyi değil
xenoterracide

@tshepang Muhtemelen daha sonra yatağımdan sonra ekleyeceğim. h çevrimiçi şeyler sadece iyi bir gazeteci olma ve kaynaklarıma atıfta bulunmamdı.
xenoterracide

@tshepang. Cevabımı güncelledim. Oldukça eminim ki irc: //frenode.net/systemd adresindeki yardımcı insanlar bir tür düzeltme önermek istediklerine karar vermedilerse.
xenoterracide 21:11

11

Pek çoğunuzun unuttuğu şey, gruplardaki süreçlerin organizasyonu .

Yani eğer sistemd bir şeyi başlattıysa, bu şeyi kendi grubuna koyacaktır ve sürecin bu gruptan kaçması için (imtiyazsız) bir araç yoktur. İşte bunun sonuçları:

  • Birçok kullanıcısı olan büyük bir sistemin yöneticisi, kötü niyetli kullanıcıları / süreçleri tanımlamak için etkili yeni yöntemlere sahiptir.
  • CPU programlama için öncelikler "Wonder autocgroup yaması" tarafından yapıldığı gibi daha iyi belirlenebilir .

8

İlk taslak taslaklardan başlayarak (ve başlangıç ​​da dahil olmak üzere mevcut init sistemlerinin eleştirisi ve sistemin nasıl düzeltmeyi önerdiği) sisteme çok detaylı bir bakış için ana sayfasına gidin . Zamanla, LWN'de yayınlanan başlangıçta birçok makale olmuştur . Sadece sistemd (veya pulseaudio) sözlerinin bitmeyen flamewarları tetiklediğini unutmayın.

IMVHO (ve bir Fedora kullanıcısı olarak) Bundan çok memnunum. Bu satırdaki bir şey, mevcut Linux sistemlerinin karmaşıklığını ele almak için çoktan gecikmişti. Fedora bir süre daha yeni bir başlangıç ​​yaptı, ancak çoğunlukla değişmeyen init senaryoları yayınlayan sysvinit için süslü bir oyuncu olma aşamasından hiç çıkmadı. Önyükleme yapılandırmasını basitleştirme vaadi yine pahasına geliyormanuel olarak bağımlılıkları ayarlama ve bu işe yaramadı. systemd, bağımlılıkları kendi kendine çözer (ya da bağımlılıkları gözetmeden bir şeyler başlatmaya izin verir, kendilerini sıralarlar). Bir diğer büyük avantaj (bazıları ciddi bir dezavantaj olduğunu söylüyor) Linux'a özgü özelliklerin tepeden yararlanmasıdır (özellikle de gruplar cemaatin ve tüm soydaşlarının izole edilmesine izin verir, bu nedenle kaynakları izlemek ya da sınırlandırmak kolaydır. bir grup; diğerleri var).


3

Günlük Kaydı - Systemd tam anlamıyla WinSXS klasörü gibi, günlükleri kaydetme konusunda, sürücünüzde yemeye devam edeceği dosya boyutunu el ile silmediğiniz veya küçültmediğiniz sürece kopyaların kopyalarını oluşturur. Önyükleyici çerezleri diyorum.


yanlış. bu kopyalar değildir ve bu yapılandırılabilir sınırı vardır freedesktop.org/software/systemd/man/journald.conf.html
pal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.