|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > Netsim System Agent Kurulum ve Yönetim Kılavuzu > 2. Kurulum > 2.3 Linux kurulumu |
Dağıtım düzeni Windows'la aynıdır: tek dizin, öneri /usr/local/netsim/Agent.
Kurulum yine ajanın kendi komutuyla yapılır; -INSTALL systemd birim dosyasını
/etc/systemd/system/<hizmet adı>.service altında üretir, ardından
systemctl daemon-reload ve systemctl enable çalıştırır — yani birimi
açılışta başlayacak biçimde kaydeder ama başlatmaz; başlatmak ayrı bir adımdır.
-UNINSTALL ise systemctl disable --now ve systemctl daemon-reload
çalıştırır; hiçbir dosyayı silmez. Birim dosyası yerinde kalır — gövdesi elle
düzenlenmiş olabileceği için kaldırma işlemi ona dokunmaz. Sonucu şudur: hizmet durur ve açılışta
başlamaz, ama systemd birimi görmeye devam eder, dolayısıyla yeniden -INSTALL
gerekmeden systemctl enable ile geri açılabilir. Tümüyle temizlemek isteyen
operatör dosyayı kendisi siler:
sudo rm /etc/systemd/system/<hizmet adi>.service
sudo systemctl daemon-reloadPaket ZIP olarak açıldıysa çalıştırılabilir dosyaların çalıştırma izni kaybolmuş olabilir; kurulumdan
önce verin (libonnxruntime.so için gerekmez):
chmod +x NetsimSystemAgent msqlsudo ./NetsimSystemAgent -INSTALL
sudo ./NetsimSystemAgent -START
systemctl status netsim-system-agent # ya da kurulan hizmet adiylaDört hizmet komutu (-INSTALL, -UNINSTALL, -START,
-STOP) sonucu standart çıkışa yazar; bir hata olursa iletisi de
oraya gider. Çıktı görünmüyorsa komutu bir terminalden çalıştırdığınızdan emin olun — çıktı
yönlendirilmişse ileti yönlendirilen yere yazılır.
Üretilen birim Type=simple, Restart=on-failure,
RestartSec=30 taşır, WorkingDirectory'yi ikilinin dizininden alır ve
LogsDirectory=<hizmet adı> yazar — bu satır sayesinde systemd
/var/log/<hizmet adı> dizinini kendisi oluşturur, User=
verildiyse ona devreder ve günlüğün yeri o dizin olur (bkz. 7.1). ExecStart'taki
ikili yolu tırnaklı, WorkingDirectory tırnaksız yazılır (systemd
bu anahtarda satırın geri kalanını olduğu gibi yol sayar); kurulum dizininde boşluk olması
birimi bozmaz.
Hesap verilmediyse User= yazmaz ve hizmet root olarak
koşar — Windows'taki LocalSystem'in simetriği budur; var olmayan bir hesap adı öndeğer olarak
uydurulsa systemctl start başarısız olurdu.
-SERVICE_USER ile ayrıcalığı kurulum anında düşürebilirsiniz — hesabın önceden var
olması gerekir:
sudo useradd --system --no-create-home --shell /usr/sbin/nologin netsim
sudo ./NetsimSystemAgent -INSTALL -SERVICE_USER netsimBirime yalnızca User=netsim satırı eklenir; Group= yazılmaz, çünkü
systemd yalnızca User= verildiğinde grubu o hesabın birincil grubuna ayarlar.
-SERVICE_PASSWORD bu platformda kullanılmaz (systemd bir hesabın parolasını istemez);
verilirse yok sayılır ve günlüğe bir uyarı düşer. Üretilen birimdeki
AmbientCapabilities=CAP_NET_BIND_SERVICE satırı tam bu an için oradadır: ayrıcalık
düşürüldüğünde yapılandırmadaki 82 portu o satır olmadan bağlanamaz hale gelirdi.
Daha ileri sertleştirme dağıtımın işidir. Birim gövdesi koddan üretilir; üretilen birimde şu satırlar bulunur:
| Satır | Ne için |
|---|---|
User=<hesap> | Yalnızca -INSTALL -SERVICE_USER <hesap> verildiğinde yazılır. Ayrıcalık düşürme; hesabın önceden var olması gerekir. Group= yazılmaz, systemd hesabın birincil grubunu kullanır. |
AmbientCapabilities=CAP_NET_BIND_SERVICE | 1024 altı portlar için şart. Bu yetki olmadan ayrıcalıksız koşan ajan örneğin 82'ye bağlanamaz, 8082'ye bağlanır. Alternatif, portu 1024 üstüne almaktır. |
Bunun ötesindeki sertleştirmeyi (StateDirectory, ProtectSystem,
Environment= ile paylaşılan bellek boyutu gibi) üretilen birimi elle düzenleyerek
ya da bir systemctl edit katmanı ekleyerek yapın; systemctl daemon-reload
unutulmamalıdır. Ajanı yeniden kurmak (-INSTALL) üretilen gövdeyi yeniden yazar ve
düzenlemelerinizi geri alır — systemctl edit katmanı bundan etkilenmez, o yüzden
kalıcı sertleştirme için katman yeğlenir.