Come rilevare quando un processo si avvia su macOS?

1

Quello che sto cercando di fare è: uccidere un processo all'avvio. Quindi vorrei sapere come rilevare quando si avvia un processo? O come bloccare un processo o un'applicazione all'avvio?

Qualche suggerimento sarebbe apprezzato?

    
posta Vincent Sun 23.08.2018 - 12:43
fonte

1 risposta

1

Crea l'app

Apri questo in Script Editor ed esportalo come applicazione di sola lettura e assicurati che rimanga aperto dopo l'esecuzione del gestore off

Dopo l'esportazione, segui questo  guida per impedirne la visualizzazione nel dock.

# 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 il LaunchDaemon

Nota: devi essere un amministratore per farlo.

Salva il seguente file in /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>

Cambia le autorizzazioni con il seguente comando:

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

Carica il daemon

Nota: devi essere amministratore per farlo.

Per avviare il demone, usa questo comando:

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

Il programma cercherà le app ogni 5 secondi e le chiuderà se sono in esecuzione.

Per fermare il demone usa questo comando

sudo launchctl unload /Library/LaunchDaemons/com.MyName.plist 
    
risposta data 23.08.2018 - 13:07
fonte

Leggi altre domande sui tag