Cómo funciona la jerarquía de procesos en macOS

2

Me pregunto cómo Activity Monitor relaciona estos dos procesos si el niño (Contenido web de Safari) no tiene el ppid del principal (Safari). pstree , que usa ppid para organizar el árbol, no muestra ninguna relación entre ellos.

Aquíhayotroejemplo,caffeinateselanzódesdeunscriptdeshelldentrodeBetterTouchToolusandonohup,yotravezpstreenomuestraningunarelación.

Enrealidad,loquenecesitoesenviarunaseñalkilla"childs" como Safari Web Content usando shell script o C api conociendo solo el "Safari" pid . Y creo que esto podría ayudar.

    
pregunta Gonzo 07.06.2018 - 05:15

1 respuesta

2

Los procesos "secundarios" de Safari son en realidad hijos del sistema init ( launchd que tiene PID 1 ), lo que explica por qué pstree u otras herramientas de Unix similares no pueden usar el pid padre habitual (o grupo de procesos) ) relación:

%psaxopid,ppid|egrep'81921|81925|82022'819211819251820221

Ensulugar,deberáutilizarunaAPIdeApple;Lautilidadlaunchctlindicaqueel"dominio" o "ASID" pueden ser relevantes:

% sudo launchctl procinfo 82022 | grep -1 81921

        domain = com.apple.xpc.launchd.domain.pid.Safari.81921
        asid = 100006
--
--

responsible pid = 81921
responsible unique pid = 81921
responsible path = /Applications/Safari.app/Contents/MacOS/Safari

Pero publiquemos esta información antes de probar qué hace algo como launchctl kill ... .

(Tenga en cuenta que lo anterior es de Mac OS X 10.11.6, las interfaces pueden haber sido modificadas por Apple desde entonces).

    
respondido por el thrig 07.06.2018 - 20:30

Lea otras preguntas en las etiquetas