systemd bir iş yöneticisidir. Kılavuz sayfası işlerin nasıl yürüdüğü konusunda kesin değildir.
Önyüklerken, hangi sistemin yaptığı, bağlantı işi için işlerden oluşan bir işlem oluşturur (örn. Default.target için işe başla). Tüm bu bağımlılıkların ve ilişkilerin ne yapacağını ve hangi işlerin nasıl tetikleneceğini tanımlamaktır. Sipariş vermek, diğer her işin bekleyeceği işleri belirler. Bu nedenle default.target birimi tüm bunların merkezindedir; bu nedenle, birimler etkinleştirilirken, systemctl enable aracılığıyla bir ileri bağımlılık sistemi kullanabildiğiniz bir dosya bağımlılığı sistemi oluşturan bir dosya sistemi sembolik bağlantısı oluşturur. ilk yer). Bir üniteyi manuel olarak başlattığınızda da benzer şekilde o ünite tutturulur ve işlem hesaplanır.
Çok fazla ayrıntıya girmeden, Neyin gerekli olduğunu ve Sonunda = ne yapıldığını açıklayacağım.
Require = bir başlangıç işini başlattığınızda (açık bir şekilde veya bir bağımlılıkla: içsel olarak bir ayrım yoktur) systemd'in gerekli ünite için bir başlangıç işini tetiklemesine neden olacaktır. Ayrıca, bu ünite durdurulduğunda (durdurma, kendi kendine kapanma) veya yeniden başlatıldığında üzerinizde bir durdurma işini tetikleme özelliğine de sahiptir. Bu, eğer bir miktar bağımlılık / systemctl durmasına / yeniden başlamasına neden olursa, ayrıca durduracağınız / yeniden başlatacağınız anlamına gelir. Ancak, kendi başına düştüğünde, hiç iş olmadığı için durmayacaksınız ve devlet değişikliği sistemin müdahalesine gerek kalmadan gerçekleşti. BindsTo'yu kullanacağınız yer = (açık bir nedenden ötürü, sistemin katılımı olmadan etkin olmayan cihaz birimlerine benzer).
Şimdi, After = kullanımı Require = tek başına yapılması gerektiği gibi tavsiye edilir, ne işe yaradığı için açıktır: başlangıç işi başarısız olursa gerekliliği iptal edin. Ancak bu iptal yalnızca wrt işlerinde çalışır, yani diğer birim sipariş tanımlamazsa, systemd hem paralel olarak tetikler, hem de başlangıç işi bitmeden başlangıç işi sona ererse, iptal edilmez (aslında iptal edilemez) . Kullanım Sonu =, diğer işin istenen birimin başlama işi bitene kadar beklemeye devam ettiği anlamına gelir ve sonucuna bağlı olarak, başarısız olursa, ünitenizin bekleme başlama işi JOB_DEPENDENCY iş sonucuyla iptal edilir (neden sarı kullanmalısınız [DEPEND] bu gibi durumlarda açılışta). Bu nedenle, bu geçersiz kılma etkisi, After = kullanmadan belirsizdir.
Bu nedenle, diğer ünitenin başlatılmasını beklemek istemiyorsanız Wants = After After = kullanılmıyorsa sorun yoktur: orada geçersiz sayılma olmadığından, yarış yoktur. Bu durumda, bir senkronizasyon mekanizmasından başka bir şey değildir.
Ayrıca, her ikisinde de önyüklemede etkinleştirebilir ve birbirlerini gerektirmeyebilir ve yalnızca siparişi tanımlayabilirsiniz, bu durumda, her ikisi de aynı işlemin bir parçası olarak çekildiğinde, bunlar sipariş edilecektir (veya diğerinin işi tetiklenirse) peşinden koşmak istediği ünitenin işi devam ederken, işlemlerde önce bitirmesini bekleyecektir).
Şimdi, eğer bir iş yoksa, siparişin söz konusu birim için bir etkisi olmaz. Bununla birlikte, genellikle Gereklilik = İsteyen = gibi bağımlılıkların kullanımının bir sonucu olarak, ya da her ikisi de bir kerede içeri çekilip bazı sıralamalar tanımlayan bir iş vardır, bu durumda başka birimin işlerini beklerler.