Certaines applications n'autorisent qu'une instance en cours d'exécution (telle que eclipse, si vous souhaitez utiliser le même espace de travail). Donc, si je me connecte depuis un autre emplacement, je dois supprimer / fermer l'application qui était ouverte lorsque je me suis déjà connecté depuis un autre emplacement.
J'utilise toujours la commande kill pour tuer le processus en cours. Toutefois, si vous supprimez un processus, il se peut que certains états non utilisés ne soient pas sauvegardés. Cependant, si vous le "fermez" correctement en cliquant sur le bouton de fermeture, par exemple, les états seront correctement sauvegardés.
Est-il possible de "fermer" correctement une application à partir de la ligne de commande? Je sais que cela peut varier d'une application à l'autre. Soyons donc un peu plus génériques: comment envoyer un signal à une autre application en cours d'exécution, et ce signal fonctionne comme si l'on cliquait sur le bouton "Fermer" dans la barre du haut?
la source
Réponses:
Par défaut, la commande kill envoie
SIGTERM
(signal de fin) au processus en cours d'exécution. Contrairement àSIGKILL
ce qui va tuer de force le processus sans aucune chance de répondre, leSIGTERM
signal peut être intercepté par le processus, ce qui lui permet de se terminer normalement. Que ce soit ou non effectivement ne fin est gracieusement entièrement dépendante du processus lui - même; il peut tout aussi bien se tuer ou ignorer totalement le signal.Vous pouvez vous assurer que vous envoyez
SIGTERM
au lieu d'un autre signal en le rendant explicite sur la ligne de commande, ainsi:la source
kill
commande tente un arrêt en douceur. Si l'application ne se ferme pas correctement dans ce cas, elle est cassée. (Et la grande majorité des applications ne sont pas interrompues.)kill -s TERM <firefox-pid>
, il ne s’arrêtera pas normalement et, lorsque je le redémarre, il me demande si je veux récupérer la session bloquée. : soupir:Notez que lorsque vous utilisez
pkill
plutôt quekill
, pour spécifier TERM, la syntaxe est la suivante:pkill
est juste comme tuer, mais vous pouvez utiliser le nom du processus plutôt que l'id.man pkill
la source