fedora – encontrar la unidad systemd 'poseyendo' un proceso demonio en ejecución

Pregunta:

Para depurar un problema de JACK / Pulseaudio, quiero entender cuándo y por qué systemd (en Fedora) inicia el demonio pulseaudio.

Utilizando:

$ ps -o'pid,ppid,args' `pgrep pulse`

Veo que systemd está iniciando el demonio pulseaudio (pid = 1)

 PID  PPID COMMAND
2738     1 /usr/bin/pulseaudio --start

Sin embargo, no pude encontrar ningún archivo de unidad en mi sistema que contenga pulseaudio o incluso solo pulse .

Mis preguntas específicas son:

A) ¿Hay alguna manera de determinar la unidad systemd que causó la creación de un proceso específico (en mi salida de ejemplo, proceso 2738, el demonio PA)?

B) ¿Existen enfoques alternativos para averiguar qué cadena de dependencia de unidades u otras configuraciones de systemd dieron como resultado la invocación de /usr/bin/pulseaudio --start ?

Respuesta:

A) ¿Hay alguna manera de determinar la unidad systemd que causó la creación de un proceso específico (en mi salida de ejemplo, proceso 2738, el demonio PA)?

Seguro. Puede ejecutar systemctl status <pid> y systemd encontrará la unidad que contiene ese PID. Por ejemplo, en mi sistema encuentro un proceso dnsmasq :

# ps -fe | grep dnsmasq
nobody   18834  1193  0 Aug25 ?        00:00:10 /usr/sbin/dnsmasq ...

¿Quién lo inició?

# systemctl status 18834
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2015-08-25 11:07:40 EDT; 1 day 21h ago
 Main PID: 1193 (NetworkManager)
   Memory: 1.1M
   CGroup: /system.slice/NetworkManager.service
           ├─ 1193 /usr/sbin/NetworkManager --no-daemon
           ├─ 1337 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-wlp3s0....
           ├─18682 /usr/libexec/nm-openvpn-service
           ├─18792 /usr/sbin/openvpn --remote ovpn-phx2.redhat.com 443 tcp --nobind --dev redhat --de...
           └─18834 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --...

También tengo un proceso de pulseaudio :

# ps -fe | grep pulseaudio
lars      2948     1  0 Aug25 ?        00:06:20 /usr/bin/pulseaudio --start

Ejecutando systemctl status 2948 , veo:

● session-3.scope - Session 3 of user lars
   Loaded: loaded (/run/systemd/system/session-3.scope; static; vendor preset: disabled)
  Drop-In: /run/systemd/system/session-3.scope.d
           └─50-After-systemd-logind\x2eservice.conf, 50-After-systemd-user-sessions\x2eservice.conf, 50-Description.conf, 50-SendSIGHUP.conf, 50-Slice.conf
   Active: active (running) since Tue 2015-08-25 11:09:23 EDT; 1 day 21h ago
   CGroup: /user.slice/user-1000.slice/session-3.scope

Esto me dice que pulseaudio se inició desde mi sesión de inicio de sesión de escritorio, en lugar de explícitamente a través de systemd.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım