¿Cómo detectar cuándo se inicia un proceso en macOS?

1

Lo que estoy tratando de hacer es: matar un proceso cuando se inicia. Entonces, ¿me gustaría saber cómo detectar cuándo se inicia un proceso? ¿O cómo bloquear un proceso o una aplicación para que no se inicie?

¿Cualquier sugerencia sería apreciada?

    
pregunta Vincent Sun 23.08.2018 - 12:43

1 respuesta

1

Crea la aplicación

Abra esto en el Editor de secuencias de comandos y expórtelo como una aplicación de solo lectura y asegúrese de que permanezca abierto después de ejecutar el controlador desactivado

Después de exportar, siga esto  Guía para evitar que se muestre en el muelle.

# Block Apps By Josh Brown
# Last Modified: Aug 23 2018
global applist

on run
    set applist to {"Google Chrome", "App Store"} -- Apps to limit
    if checkapps() then
        killall()
    end if
end run
on is_running(appName)
    try
        if (the length of (do shell script "pgrep -x " & quoted form of appName) > 0) then
            kill(do shell script "pgrep -x " & quoted form of appName)
        end if
    end try
end is_running

on checkapps()
    set x to false
    repeat with a from 1 to length of applist
        is_running(item a of applist)
    end repeat
    return x
end checkapps

on kill(theID)
    do shell script "kill -9 " & theID
end kill

Crea el LaunchDaemon

Nota: Debes ser un administrador para hacer esto.

Guarda el siguiente archivo en /Library/LaunchDaemons/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.PlzUpvoteMy.answer</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/bin/open</string>
            <string>-W</string>
            <string>**/path/to/application.app**</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StartInterval</key>
        <integer>5</integer>
        <key>UserName</key>
        <string>**UserToBlock**</string>
    </dict>
</plist>

Cambie los permisos con el siguiente comando:

sudo chown root:wheel /Library/LaunchDaemons/com.MyName.plist

Cargar el demonio

Nota: Debes ser administrador para hacer esto.

Para iniciar el daemon usa este comando:

sudo launchctl load /Library/LaunchDaemons/com.MyName.plist 

El programa buscará las aplicaciones cada 5 segundos y las cerrará si se están ejecutando.

Para detener el daemon usa este comando

sudo launchctl unload /Library/LaunchDaemons/com.MyName.plist 
    
respondido por el JBis 23.08.2018 - 13:07

Lea otras preguntas en las etiquetas