# Quitter PROPREMENT le dock dans le shell



## Elaum (22 Février 2006)

Bonjour  
Je suis un (très) gros utilisateurs de widgets qui me prennent beaucoup de mémoire voire de CPU.

Lorsque je veux lancer un jeu, j'ai l'habitude de lancer Moniteur d'activité de cliquer sur Dock et de cliquer sur quitter (pas forcer à quitter).
Ca a pour effet de relancer le dock et de quitter Dashboard et donc tous les widgets.

J'aimerais savoir si il existe une commande UNIX qui me permettrait de faire ça sans passer par moniteur d'activité.
Et si possible j'aimerais créer un script shell à partir de cette commande pour l'installer sur plusieurs ordis.
Si quelqu'un sait comment faire  

J'ai déjà regardé la commande kill mais il me semble que ça quitte "salement".


----------



## supermoquette (22 Février 2006)

sudo killall Dock 

?


----------



## Elaum (22 Février 2006)

Merci pour ce début de piste.


```
$killall nom_de_l_appli
```
 permet de quitter une application en lui envoyant SIGTERM (15)
Lorsque je quitte normalement un programme sous Xcode, il me dit qu'il à quitter avec le signal 0
Or dans le man de killall et de signal je ne trouve pas le nom du signal 0 et si je met juste -0, ça marche pas.

Si quelqu'un à une idée


----------



## ericb2 (22 Février 2006)

Tu es sur que 0 n'est pas le code de retour ? Dans ce qas, cela signifie que l'appli s'est arrêtée sans problème... ( en retournant la valeur 0) 
Pour essayer de répondre, je te conseille de te renseigner sur le signaux de type POSIX (signification et utilisation avec le shell).
Oncle Google devrait te répondre avec plein d'exemples ;-)


----------



## Elaum (22 Février 2006)

En fait oui 0 est le code de return 0; à la fin de mes programmes.
En regardant le manuel du terminal, 0 ne fonctionne pas 


> BUGS
> A replacement for the command ``kill 0'' for csh(1) users should be provided.



Mon problème est que lorsque je clique sur quitter/quitter dans moniteur d'activité en ayant séléctionné le Dock, ça quitte les widgets mais ça sauvegarde leur positions...
Alors que lorsque que j'utilise killall Dock ou un applescript 
	
	



```
tell application Dock to quit
```
 ça ne sauvegarde rien.

C'est vraiment génant et je ne sais pas comment faire.

Y aurait il un moyen pour forcer cette sauvegarde en applescript ou shell??

Une piste si quelqu'un peut m'éclairer, j'ai remarqué que lorsque je sort de Dashboard ça sauve les positions mais je ne sais pas du tout comment faire.


----------



## supermoquette (22 Février 2006)

Essaie de verrouiller les prefs de dashboard

~/Library/Preferences/com.apple.dashboard.plist

pour voir si c'est là que les positions sont mémorisées


----------



## Elaum (22 Février 2006)

C'est bien là qu'elle sont mémorisé et lorsqu'on "ferme" dashboard, elle sont sauvegardé.

Qu'entend tu par verouiller???


----------



## supermoquette (22 Février 2006)

Ben pomme-i puis verrouiller 

Ou alors avant le killall tu renommes ce fichier, puis après le killall tu le rerenommes


----------



## FjRond (23 Février 2006)

Une ligne du genre :

```
$ kill §(ps auxcww | grep Dock | awk ' { print $2 }')
```
Chez moi, ça marche proprement. Et je retrouve mes widgets là où je les ai placés.

Il est possible de faire soit un alias, soit un script de cette ligne de code.
À noter que la commande kill <processus> (où processus est désigné par son PID) est la manière la plus propre de quitter un processus.
Dernière chose : il est possible que cette commande ne fonctionne pas en raison d'un problème avec awk. La version native de Mac OS X pose en effet quelques problèmes. Pour y remédier, installer la version livrée par fink.


----------



## bompi (24 Février 2006)

C'est curieux, ce code "paragraphe" (§) : ne serait-ce point plutôt un bon vieux dollar ($) ?


----------



## FjRond (24 Février 2006)

bompi a dit:
			
		

> C'est curieux, ce code "paragraphe" (§) : ne serait-ce point plutôt un bon vieux dollar ($) ?


Ouh là là ! Je n'avais pas mis mes lunettes !    
C'est bien un dollar « $ » qu'il faut, et non un paragraphe « § ».

```
$ kill $(ps auxcww | grep Dock | awk ' { print $2 }')
```


----------

