Systemd birim dosyasını işlem adından tanımlayın


5

Bazı servis birimi dosyaları için, birim dosya adı, arka planın adına karşılık gelmez.

Örneğin Postfix: Birim dosyası çağrılır, postfix.serviceancak başlatılan temel daemonlar master(ana daemon) ve qmgrve tlsmgr(yardımcı daemonlar) olarak adlandırılır.

Daemon isimlerinden herhangi birine göre birim ismini almanın bir yolunu arıyorum.

Kullanarak systemctl status postfix(örnek olarak), ortaya çıkardığı süreçleri gösterdiğini görebiliyorum.

Kullanarak systemctl --all statusher şeyi alabilirim .... ama bu karışıklığa bir düz adım atmak, ünite adını geri almayacak.

Yanıtlar:


5

Libsystemd API fonksiyonudur sd_pid_get_unit(…). Komut satırından, psUNIT sütunu ile kullanabilirsiniz (libsystemd desteği ile derlenmişse):

$ ps -e -o pid, birim, cmd
    PID BİRİMİ CMD
      1 init.scope / usr / lib / sistem / sistem
    315 postfix.service tlsmgr -l -t unix -u
   3057 cronie.service / usr / bin / CROND -n
   3107 galed.service / usr / bin / galed
   3182 getty@tty1.service / sbin / agetty - toc1ear tty1 linux
  29171 postfix.service / usr / lib / postfix / bin / master -w
  32758 postfix.service qmgr -l -t unix -u

$ ps -o birim = 32758
postfix.service

$ ps -o birim = -C tlsmgr
postfix.service

$ systemctl status $ (pidof alma)
● postfix.service - Postfix Mail Transport Agent
   Yüklendi: yüklü (/usr/lib/systemd/system/postfix.service; etkin; satıcı ön ayarı: devre dışı)
   Aktif: Güneş'ten beri aktif (çalışıyor) 2016-03-27 17:24:24 EEST; 2 hafta 2 gün önce
 Ana PID: 29171 (ana)
    Görevler: 4 (sınır: 512)
   CGroup: /system.slice/postfix.service
           ├─ 315 tlsmgr - l - t
           20 8720 alma -l -t unix -u
           1729171 / usr / lib / postfix / bin / master -w
           7532758 qmgr -l -t tekli -u

$ grep: name = systemd: / proc / $ (pidof alma) / cgroup
1: ad = systemd: /system.slice/postfix.service
# Yok CGroup yapısı önümüzdeki aylarda değişecek gibi bu bir itimat

2
ps -o unit = -C tlsmgr tam olarak aradığım şeydi. Systemctl status $ (pidof pickup) durumunun farkındaydım, ancak bu çıktının ünite adını almak için ayrıştırması neredeyse imkansız (postfix.service). Teşekkürler!
Zee99
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.