Sous Linux et Mac OS X, existe-t-il une commande kill ou killall permettant à l'application de demander un document non enregistré avant de quitter?

1

Sous Linux et Mac OS X, est - il killou killall commandqui peut laisser l'application demander avant de quitter document non enregistré, un peu comme demander l'application de quitter, ou en cliquant sur le bouton « fermer » de la fenêtre.

Par exemple, tapez somecommand TextEditsur Mac et TextEdit vous demandera si vous souhaitez enregistrer le document non enregistré.

者 無極 而 生
la source

Réponses:

4

Cela dépend de la manière dont chaque programme réagit aux signaux. Si vous faites un killavec un 15 ( SIGTERM) un programme est supposé faire le nettoyage alors quittez. Si, quoi et comment sont une autre affaire.

Dennis Williamson
la source
2

Pour OS-X, essayez le script dans Quittez les applications poliment depuis la ligne de commande de MacOSXHints.com. Vous pouvez indiquer à l'application cible si vous souhaitez ou non enregistrer ses fichiers ouverts. Spécifique à OS-X, cependant, il utilise AppleScript.

JRobert
la source
0

Cela ne vous ressemble pas, même si vous pouvez vérifier les différents signaux de neutralisation disponibles et les essayer. J'en ai essayé quelques-unes mais elles semblent toutes interrompre le processus au lieu d'envoyer un signal d'abandon.

Josh K
la source
0

Je pense que cela dépend de l'application, mais tuez -2, -3 ou -15 pourrait être ce que vous cherchez ...

Brian Postow
la source
Vous pouvez man 5 signalsvoir ce que signifient ces chiffres
Daenyth
0

Mac:

osascript -e 'tell app "TextEdit" to quit'

Si vous devez spécifier l'application en tant qu'argument,

osascript -e 'on run args
  tell app (item 1 of args) to quit
end run' TextEdit

(Ou enregistrez le script cité dans un fichier et .)osascriptscript appname

Kevin Reid
la source
0

Les signaux qui terminent une application ne sont pas censés permettre à l'application d'interagir davantage avec l'utilisateur. Soit l'utilisateur n'est plus disponible (le HUPsignal, dont la signification originale était que l'utilisateur était connecté à l'ordinateur via un modem et le téléphone est mort), ou l'utilisateur ne veut pas être dérangé (le TERMsignal par défaut et son signal plus violent) frères QUITet soeurs et KILL). HUPCependant, de nombreuses applications essaieront de sauvegarder le travail non enregistré quelque part si elles reçoivent le signal.

Une option différente pour Linux (et d'autres systèmes) consiste à envoyer une notification à la fenêtre plutôt qu'au processus: le _NET_CLOSE_WINDOWmessage indique à une application de se débarrasser gracieusement d'une fenêtre spécifique. Vous pouvez envoyer ce message à partir de la ligne de commande avec wmctrl, par exemple, wmctrl -c WINDOW_TITLE_SUBSTRING. Malheureusement, toutes les applications ne supportent pas cela.

Gilles
la source