Vous pouvez envisager de créer une application Stay-Open Applescript qui définit / réinitialise le compteur de sommeil en fonction de l’existence d’un processus en cours. Créer une liste de diffusion est également une solution viable, mais je suis toujours fragile en termes de syntaxe. La commande "pmset force sleep X" ne nécessite pas d'accès root, mais les paramètres sont réinitialisés au redémarrage. 
 Puisque votre situation semble ne pas pouvoir anticiper tous vos besoins, je vais vous donner un aperçu. 
property LoopTime: 5 --measured in seconds
property normalSleepTimeout: 30 --measured in minutes
property processName: "rsync"  --the name of the process you're trying to find
on run
   do shell script "pmset force sleep 0"  --disables sleep
   idle()
end
on idle
   if not appIsRunning() then 
      do shell script ("pmset force sleep " & normalSleepTimeout as string) -- sets sleep to desired idle timeout
      quit
   end
   return 
end
on appIsRunning()
   --Here's where you need to do the test that an app is running.  True needs to mean "the app is running".  Store the value to "result" or change the below return statement.
   return result
end
 Pour des tâches telles que rsync et les processus en arrière-plan, vous devrez faire preuve de plus d'intelligence et interroger d'autres fonctions telles que $ top. 
set result to False
if 0 < (count of (do shell script ("top -l 1 | grep" & processName as string))) then
   set result to True
end
 Notez que dans le cas ci-dessus, la recherche de "rsync" seulement renvoie un faux positif si rsyncd est en cours d'exécution, car "rsync" et "rsyncd" correspondent. Vous devrez peut-être avoir plus de difficulté si cela ne fonctionne pas pour vous. 
 Si l'application était un processus Windowed, j'utiliserais les éléments suivants pour déterminer ce qui est en cours d'exécution: 
tell application "System Events" to set RunningAppNames to name of processes
 Ou pour les identifiants de paquet (plus précis) 
tell application "System Events" to set RunningBundles to bundle identifier of processes
 Dites m'en plus sur votre scénario et je vais essayer d'écrire quelque chose de plus exact et avec une interface utilisateur plus flexible.