1 votes

script pour redémarrer l'application

Je dois redémarrer une application une fois par jour parce qu'elle a une fuite de mémoire et qu'elle finit par consommer plusieurs gigas de mémoire au bout de quelques jours. Une mauvaise programmation peut-être, mais le développeur n'a pas réussi à reproduire le problème. Je rencontre le problème sous MacOS 10.13. Le développeur est peu motivé pour essayer de résoudre le problème sur une version obsolète de MacOS.

J'ai mis en place un petit script pour redémarrer ladite application. Cependant, le script n'a fonctionné que pendant quelques mois, maintenant j'ai commencé à recevoir le message d'erreur suivant chaque fois que le script s'exécute :

L'application ne fonctionne pas. APPLICATIONNAME a reçu une erreur : L'application ne fonctionne pas. (-600)

Le script est le suivant :

#!/bin/bash

#!/usr/bin/osascript

tell application "APPLICATIONNAME"
    quit

    delay 30

    tell application "APPLICATIONNAME" to activate
end tell

Comment puis-je résoudre cette erreur ?

3voto

Tetsujin Points 95239

Cela fonctionne pour moi, mais il y a un étrange "bracketing" de tell que j'avais initialement supposé être le problème.

Vous ouvrez votre bloc de parole, puis à l'intérieur de celui-ci en utilisant un autre "dire à" en une seule fois, puis vous fermez la parole originale. Cela semble bizarre, même si cela semble fonctionner.
La logique étant que comme le bloc du tell principal est toujours ouvert, le PID original de "APPLICATIONNAME" est peut-être encore ce qu'il garde en mémoire et essaie peut-être de le réappliquer plus tard, lorsqu'il n'existe plus. [Supposition]

J'essaierais

tell application "app" to quit

delay 30

tell application "app" to activate

0voto

itoldusoandso Points 11

Ça n'a pas marché pour moi.

Here is my script now..

#!/usr/bin/osascript
tell application "app" to quit
delay 30
tell application "app" to activate

J'ai également activé le bit execute, je suis passé dans le répertoire où se trouve le fichier et j'ai exécuté : chmod=+x nom_script.sh

Lorsque j'exécute le script dans l'éditeur script, que l'application "app" soit en cours d'exécution ou non, lorsque je l'exécute, l'application se restaure mais j'obtiens ce message :

error "CloudMounter a obtenu une erreur : Application isn't running." nombre -600

Ce qui est étrange, c'est que si l'application n'était pas en cours d'exécution, après avoir exécuté le script, l'application est exécutée et fonctionne.

Je n'ai même pas essayé d'exécuter le script dans mon application de planification car je suppose que j'obtiendrais également le même message d'erreur.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X