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.