Linux'ta Node.js Uygulamaları için 4 Süreç Yöneticisi


Node.js süreç yöneticisi, Node.js işleminin veya komut dosyasının sürekli (sonsuza kadar) çalışmasını sağlamak için yararlı bir araçtır ve sistem önyüklemesinde otomatik olarak başlatılmasını etkinleştirebilir .

Çalışan hizmetleri izlemenize olanak tanır ve ortak sistem yönetimi görevlerini kolaylaştırır (örneğin, arıza durumunda yeniden başlatma, durdurma, kesinti olmadan yapılandırmaları yeniden yükleme, ortam değişkenlerini/ayarlarını değiştirme, performans ölçümlerini gösterme ve çok daha fazlası). Aynı zamanda uygulama günlüğü tutmayı, kümelemeyi ve yük dengelemeyi ve diğer birçok yararlı süreç yönetimi özelliğini de destekler.

Ayrıca Okuyun: 2019'un Geliştiriciler için En İyi 14 NodeJS Çerçevesi

Paket yöneticisi, özellikle Node.js uygulamalarının üretim ortamında dağıtımı için kullanışlıdır. Bu makalede, bir Linux sisteminde Node.js uygulama yönetimi için dört süreç yöneticisini inceleyeceğiz.

1. PM2

PM2, açık kaynaklı, gelişmiş, zengin özelliklere sahip, çapraz platformlu ve yerleşik yük dengeleyiciye sahip Node.js için üretim düzeyindeki en popüler süreç yöneticisidir. Başlatılan tüm Nodejs işlemlerini listelemenize, izlemenize ve bunlar üzerinde işlem yapmanıza olanak tanır ve küme modunu destekler.

Uygulama izlemeyi destekler: uygulamanızın kaynak (bellek ve CPU) kullanımını izlemenin basit bir yolunu sunar. Bir işlem dosyası aracılığıyla her uygulamanın davranışını yapılandırmanıza ve ayarlamanıza olanak tanıyarak süreç yönetimi iş akışınızı destekler (desteklenen biçimler arasında Javascript, JSON ve YAML bulunur) ).

Uygulama günlükleri üretim ortamında her zaman önemlidir; bu bakımdan PM2, uygulamanızın günlüklerini kolayca yönetmenize olanak tanır. Günlükleri işlemek ve görüntülemek için sırasıyla farklı yollar ve formatlar sağlar. Günlükleri gerçek zamanlı olarak görüntüleyebilir, temizleyebilir ve gerektiğinde yeniden yükleyebilirsiniz.

Daha da önemlisi, PM2, beklenen veya beklenmeyen makine yeniden başlatmalarında süreçlerinizi otomatik olarak başlatmak için yapılandırabileceğiniz başlangıç komut dosyalarını destekler. Ayrıca geçerli dizinde veya alt dizinlerinde bir dosya değiştirildiğinde uygulamanın otomatik olarak yeniden başlatılmasını da destekler.

Ayrıca PM2, kullanıcıların Nodejs süreç yönetimi için özel modüller oluşturmasına olanak tanıyan bir modül sistemiyle birlikte gelir. Örneğin, günlük döndürme modülü veya yük dengeleme için bir modül ve çok daha fazlasını oluşturabilirsiniz.

Son olarak, eğer Docker konteynerleri kullanıyorsanız, PM2 konteyner entegrasyonuna izin verir ve bunu programlı olarak kullanmanıza izin veren bir API sistemi sunar.

2. StrongLoop PM

StrongLoop PM aynı zamanda PM2 gibi yerleşik yük dengeleme özelliğine sahip Node.js uygulamalarına yönelik açık kaynaklı, gelişmiş bir üretim süreci yöneticisidir ve bir komut aracılığıyla kullanılabilir. çizgi veya grafiksel bir arayüz.

Uygulama izlemeyi (olay döngü süreleri, CPU ve bellek tüketimi gibi performans ölçümlerini görüntüleme), çoklu ana bilgisayar dağıtımını, küme modunu, sıfır kesinti süreli uygulama yeniden başlatmalarını ve yükseltmelerini, arıza durumunda otomatik işlem yeniden başlatmayı ve günlük toplama ve yönetimini destekler.

Ayrıca, Docker desteğiyle birlikte gelir, performans ölçümlerini StatsD uyumlu sunuculara aktarmanıza ve DataDog, Graphite< gibi 3. taraf konsollarda görüntülemenize olanak tanır., Splunk'ın yanı sıra Syslog ve ham günlük dosyaları.

3. Sonsuza kadar

Forever, belirli bir betiği sürekli (sonsuza kadar) çalıştırmak için kullanılan açık kaynaklı, basit ve yapılandırılabilir bir komut satırı arayüz aracıdır. Node.js uygulamalarının ve komut dosyalarının daha küçük dağıtımlarını çalıştırmak için uygundur. forever'ı iki şekilde kullanabilirsiniz: komut satırı aracılığıyla veya kodunuza yerleştirerek.

Node.js işlemlerini yönetmenize (başlatma, listeleme, durdurma, tümünü durdurma, yeniden başlatma, tümünü yeniden başlatma vb.) olanak tanır ve dosya değişikliklerini izlemeyi, hata ayıklama modunu, uygulama günlüklerini, sonlandırma işlemlerini destekler. bir süreç ve çıkış sinyalinin özelleştirilmesi ve çok daha fazlası. Ayrıca doğrudan komut satırından aktarabileceğiniz veya bir JSON dosyasına aktarabileceğiniz çeşitli kullanım seçeneklerini destekler.

4. SystemD – Servis ve Sistem Yöneticisi

Linux'ta Systemd, işlemler ve dosya sisteminin diğer bileşenleri gibi sistem kaynaklarını yöneten bir arka plan programıdır. systemd tarafından yönetilen herhangi bir kaynak birim olarak bilinir. Hizmet, cihaz, soket, montaj, hedef ve diğer birçok birim dahil olmak üzere farklı türde birimler vardır.

Systemd, birimleri birim dosyası olarak bilinen bir yapılandırma dosyası aracılığıyla yönetir. Bu nedenle, Node.js sunucunuzu diğer sistem hizmetleri gibi yönetmek için, onun için bir birim dosyası oluşturmanız gerekir; bu durumda bu bir hizmet dosyası olacaktır.

Node.js sunucunuz için bir hizmet dosyası oluşturduğunuzda, onu başlatabilir, sistem önyüklemesi sırasında otomatik olarak başlatılmasını etkinleştirebilir, durumunu kontrol edebilir, yeniden başlatabilir (durdurup yeniden başlatabilirsiniz) veya yapılandırmasını yeniden yükleyin ve hatta diğer sistem hizmetleri gibi durdurun.

Daha fazla bilgi için bkz.: Shell Komut Dosyasını Kullanarak Systemd'de Yeni Hizmet Birimleri Nasıl Oluşturulur ve Çalıştırılır

Özet

Node.js paket yöneticisi, projenizi üretim ortamında dağıtmak için yararlı bir araçtır. Bir uygulamayı sonsuza kadar canlı tutar ve onu nasıl kontrol edebileceğinizi basitleştirir. Bu makalede Node.js için dört paket yöneticisini inceledik. Eklemek veya sormak istediğiniz sorularınız varsa, bize ulaşmak için aşağıdaki geri bildirim formunu kullanın.