3 votes

Commande du terminal pour quitter "Backup and Sync" de Google ?

Y a-t-il une commande terminale que je peux utiliser pour quitter le logiciel "Backup and Sync" de Google ? Je suis en train d'écrire un script Bash pour optimiser la durée de vie de la batterie de la machine et j'aimerais arrêter tous les logiciels non essentiels que j'ai habituellement en arrière-plan tels que Backup and Sync. J'ai essayé les commandes habituelles (osascript -e 'tell app "Backup and Sync from Google" to quit' ET killall 'Backup and Sync from Google') sans succès.

4voto

Leigh Klotz Points 46

Cet article est ancien, mais j'ai eu du mal avec cela, alors j'ai pensé que je pourrais aider. La raison pour laquelle le "\ from\ Google" ne fonctionne pas est que ce n'est pas le processus, il n'y a pas de "from Google" dans le nom du processus. Si vous faites :

ps -ef | grep "Backup\ and\ Sync"

Vous obtiendrez une sortie comme ceci :

501 37327 1 0 3:37PM ?? 0:06.37 /Applications/Backup and Sync.app/Contents/MacOS/Backup and Sync

Cela montre que le nom du processus ne contient pas "from Google". En fait, si vous regardez dans le répertoire des applications avec Finder et que vous faites un "obtenir des informations", il vous montrera le vrai nom de l'application. "Backup and Sync from Google" est juste une marque. J'ai vu la même chose avec d'autres applications. C'est AUSSI ce que osascript sait, donc vous pouvez faire :

osascript -e 'tell application "Backup and Sync" to activate'

et

osascript -e 'quit app "Backup and Sync"'

ce qui est plus élégant que kill.

Notez que si vous avez plusieurs utilisateurs configurés dans Backup and Sync, vous devrez trouver le PID du bon utilisateur, puis le tuer. C'est plus compliqué. J'ai un script pour ça, mais je n'ai plus plusieurs utilisateurs, donc je ne suis pas sûr que ça fonctionne toujours, mais pour ce que ça vaut, le voici. Je ne sais pas non plus quelles sont les résultats de l'appel osascript lorsque plusieurs utilisateurs sont impliqués.

fonction GoogleBackup {

s'il n'y a pas de paramètres, génère une erreur

if [ $# -lt 1 ] then echo "$(date): Mauvais appel de la fonction GoogleDrive" echo "$(date): Utilisation :" echo "$(date): GoogleDrive [start]"
echo "$(date): GoogleDrive [killall]"
echo "$(date): GoogleDrive [stop username]"
return 0 fi

googletrouvé=false

case $1 in

start)

#démarre Backup and Sync pour tous les utilisateurs
echo "$(date): Démarrage de Google Backup and Sync"
open /Applications/Backup\ and\ Sync.app

;;

stop)

#arrête Backup and Sync pour un utilisateur spécifié

# s'il n'y a pas de nom d'utilisateur (paramètre 2) spécifié, quitter
if [ $# -ne 2 ]
then
    echo "$(date): Paramètres incorrects. Nom d'utilisateur Google requis"
    return 0
else
    #parcours chaque répertoire d'utilisateur Backup and Sync et recherche l'utilisateur pour obtenir le PID de ce processus
    for chemin in $HOME/Library/Application\ Support/Google/Drive/user_*
    do
        # si ce n'est pas un répertoire, passer
        [ -d "${chemin}" ] || continue 
        nomdossier="$(basename "${chemin}")"
        #le fichier sync_log.log contient le nom d'utilisateur. Si le nom d'utilisateur est dans ce fichier journal, le fichier PID contient le processus à tuer
        utilisateur=$(cat $HOME/Library/Application\ Support/Google/Drive/$nomdossier/sync_log.log | grep "Request (" | tail -1 | awk '{print $2}' | sed 's/[)(:]//g')
        # vérifier si l'utilisateur dans le fichier journal correspond à l'utilisateur spécifié           
        if [ "$utilisateur" == "$2" ]
        then
            #Si l'utilisateur correspond, obtenir le PID à tuer
            pidatuer=$(cat $HOME/Library/Application\ Support/Google/Drive/$nomdossier/pid)
            # s'assurer que le PID est en cours d'exécution ET que c'est un processus Backup and Sync (réduit le risque de PID recyclé)
            if ps -p $pidatuer | grep "Backup\ and\ Sync" > /dev/null
            then
                echo "$(date): Arrêt de la sauvegarde et de la synchronisation pour l'utilisateur $utilisateur"
                kill -quit $pidatuer
            else
                echo "$(date): L'utilisateur Google Backup and Sync $utilisateur n'est pas en cours d'exécution"
            fi
            googletrouvé=true
        fi
    done

    # si l'utilisateur spécifié n'est pas trouvé, enregistrer une erreur et fournir une liste des utilisateurs connus
    if ! $googletrouvé
    then
        echo "$(date): Utilisateur $2 non trouvé. Utilisateurs incluent :"
        for chemin in $HOME/Library/Application\ Support/Google/Drive/user_*
        do
            [ -d "${chemin}" ] || continue 
            nomdossier="$(basename "${chemin}")"
            echo "$(date): $(cat $HOME/Library/Application\ Support/Google/Drive/$nomdossier/sync_log.log | grep "Request (" | tail -1 | awk '{print $2}' | sed 's/[)(:]//g')"
        done
    fi
fi

;;

killall)

echo "$(date): Arrêt de Google Backup and Sync TOUS les utilisateurs"
# Journalise les utilisateurs en cours d'exécution et ceux qui ne le sont pas
for chemin in $HOME/Library/Application\ Support/Google/Drive/user_*
do
    [ -d "${chemin}" ] || continue 
    nomdossier="$(basename "${chemin}")"
    utilisateur=$(cat $HOME/Library/Application\ Support/Google/Drive/$nomdossier/sync_log.log | grep "Request (" | tail -1 | awk '{print $2}' | sed 's/[)(:]//g')
    if [ "$utilisateur" != "" ]
    then
        pidatuer=$(cat $HOME/Library/Application\ Support/Google/Drive/$nomdossier/pid)
        if ps -p $pidatuer | grep "Backup\ and\ Sync"> /dev/null
        then
            echo "$(date): Arrêt de la sauvegarde et de la synchronisation pour l'utilisateur $utilisateur"
            googletrouvé=true
        else
            echo "$(date): L'utilisateur Google Backup and Sync $utilisateur n'est pas en cours d'exécution"
        fi
    fi
done
# Arrête réellement tous les utilisateurs si nous en avons trouvé qui sont en cours d'exécution, sinon indique simplement qu'ils sont tous arrêtés
if $googletrouvé
then
    killall Backup\ and\ Sync > /dev/null 
else
    echo "$(date): Aucun processus Google Backup and Sync n'était en cours d'exécution"
fi

;;

*)

echo "$(date): Mauvais appel de la fonction GoogleDrive"
echo "$(date): Utilisation :"
echo "$(date): GoogleDrive [start]"    
echo "$(date): GoogleDrive [stopall]"  
echo "$(date): GoogleDrive [stop username]"    
return 0

;;

esac

}

(Le $(date) dans l'écho est parce que cela s'exécute en arrière-plan au démarrage basé sur les connexions wifi et la sortie va dans un fichier journal.)

Désolé si je ne réponds pas de la "bonne façon" car c'est mon premier message.

0 votes

Oh mec, ça fait un moment que je n'ai pas vu de mise à jour sur cette question! Merci pour les infos supplémentaires et le script.

3voto

JMY1000 Points 4874

Bizarre, j'ai essayé killall "Backup and Sync from Google" et ça n'a pas fonctionné.

Essaye killall Backup\ and\ Sync, ça a marché pour moi pour une raison quelconque. Ajouter \ from semble tout casser.

0 votes

Merci, cela semblait fonctionner. Savez-vous si la commande killall permet à un processus de se fermer gracieusement?

0 votes

Par défaut, killall envoie le signal SIGTERM; bien que cela permette au processus de s'arrêter de manière quelque peu gracieuse, ce n'est pas la même chose que Quit ou Force Quit, ni aussi gracieux. Le script Apple que vous avez publié est plus proche de ce que vous voulez pour une sortie gracieuse, bien que je n'ai pas réussi à le faire fonctionner. Peut-être que le scripting GUI pourrait être une solution?

0 votes

Pkill -9 -f Sync.app

0voto

J'ai aussi eu ce problème, j'avais aussi environ 30 instances de l'application Backup & Sync en cours d'exécution qui utilisaient les ressources de mon ordinateur et le maintenaient en permanence éveillé. En exécutant cette commande depuis le terminal, vous libérez de la mémoire :

 pkill -9 -f Sync.app

Ensuite, jeter cette application à la corbeille permet de s'en débarrasser. C'est surprenant de voir la médiocrité de l'application étant donné qu'elle provient de Google.

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