OVH Cloud OVH Cloud

Quitter Utilisateur ou Appli depuis Terminal

34 réponses
Avatar
AlNob
Depuis un certain temps, je cherche en vain les commandes du terminal
qui me permettraient de quitter la session de l'utilisateur "en cours"
ainsi que la commande pour forcer à quitter une appli qui bloque car je
n'arrive plus à le faire quand je suis sous "Finder".

Je suis un novice, alors je vous en prie ---> AIDEZ-MOI <----

Nota 1 : Système 10.3.9/1.25Ghz/MonoPro/1.75Go Ram/Mac MirrorDoor .
Nota 2 : J'ai déjà essayé de remplacer les applis "Finder" et "dock"
sans succés, de passer par le moniteur d'activité pour trouver l'appli
fautive mais toujours sans succès.

10 réponses

1 2 3 4
Avatar
Stephane Dupille
Éteindre, c'est :
$ shutdown -h now


Oui.

Redémarrer :
$ shutdown -hr now


Non, il ne faut pas mettre le h, -r suffit.

-h c'est pour Halt, donc arrêter ;
-r c'est pour Reboot, donc redémarrer.

Demander à la fois un arrêt et un reboot n'a aucun sens. En
l'occurence, il prend le dernier, mais bon, vaut mieux éviter de
donner des ordres contradictoires.

Pour fermer sa propre session, je suppose que ça doit marcher comme
cela :
$ sudo kill -9 $(ps -auxcww | grep loginwindow | awk '/MOI/ { print
$2 }')


Je remplacerai le -9 qui est violent par un -QUIT qui laisse une
chance aux applis de se terminer correctement, ce qui éviterait un
éventuel redémmarage douloureux.

Et il vaut mieux éviter également de donner le numéro et d'utiliser
le nom du signal. Donc de faire un kill -KILL le cas échéant.

--
voila je suis depuis un certain temps sur l'essait du decryptage de
certaines images X mises dans des magazines.
Ceci juste afin d'apprendre la cryptologie et le decryptage.
-+-S in <http://www.le-gnu.net> - j'apprends aussi l'hypocrisyptage -+-

Avatar
frangi
Stephane Dupille writes:


Redémarrer :
$ shutdown -hr now


Non, il ne faut pas mettre le h, -r suffit.

-h c'est pour Halt, donc arrêter ;
-r c'est pour Reboot, donc redémarrer.

Demander à la fois un arrêt et un reboot n'a aucun sens. En
l'occurence, il prend le dernier, mais bon, vaut mieux éviter de
donner des ordres contradictoires.


En effet.

Pour fermer sa propre session, je suppose que ça doit marcher comme
cela :
$ sudo kill -9 $(ps -auxcww | grep loginwindow | awk '/MOI/ { print
$2 }')


Je remplacerai le -9 qui est violent par un -QUIT qui laisse une
chance aux applis de se terminer correctement, ce qui éviterait un
éventuel redémmarage douloureux.


C'est effectivement un peu brutal.

Et il vaut mieux éviter également de donner le numéro et d'utiliser
le nom du signal. Donc de faire un kill -KILL le cas échéant.


Là je ne suis pas : si on donne le numéro du signal, on ne donne pas
le nom, et inversement...?
--
====================================================
François GIRON -- Mac OS X 10.4.3 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html

====================================================


Avatar
Stephane Dupille
Et il vaut mieux éviter également de donner le numéro et d'utiliser
le nom du signal. Donc de faire un kill -KILL le cas échéant.
Là je ne suis pas : si on donne le numéro du signal, on ne donne pas

le nom, et inversement...?


Pour éviter de retenir les numéros, il existe un nom pour chacun des
signaux. Il est préférable d'utiliser ces noms à la place des numéros
: on a tout simplement un peu moins de chances de se planter.

Les noms des signaux sont dans un man quelconque, certainement dans
kill(1) mais je n'ai pas de mac sous la main pour vérifier.

Bien entendu, on utilise soit l'un, soit l'autre :
# kill -1 <pid>
# kill -HUP <pid>
sont totalement équivalents, mais le second est plus explicite.

--
RG -Ben, non, en français, pas de points de suspension après un etc.,
c'est une redondance pour dire deux fois la même répétition...
CC -Moi j'aime bien la redondance qui dit 2 fois la même répétition.
-+- RG & CC in GNU : On n'efface rien et on recommence -+-


Avatar
frangi
Stephane Dupille writes:

Et il vaut mieux éviter également de donner le numéro et d'utiliser
le nom du signal. Donc de faire un kill -KILL le cas échéant.
Là je ne suis pas : si on donne le numéro du signal, on ne donne pas

le nom, et inversement...?


Pour éviter de retenir les numéros, il existe un nom pour chacun des
signaux. Il est préférable d'utiliser ces noms à la place des numéros
: on a tout simplement un peu moins de chances de se planter.


Commme cela, c'est plus clair.

Les noms des signaux sont dans un man quelconque, certainement dans
kill(1) mais je n'ai pas de mac sous la main pour vérifier.


On obtient le nom des signaux par la commande

$ kill -l

Bien entendu, on utilise soit l'un, soit l'autre :
# kill -1 <pid>
# kill -HUP <pid>
sont totalement équivalents, mais le second est plus explicite.


--
====================================================
François GIRON -- Mac OS X 10.4.3 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html

====================================================



Avatar
blanc
Saïd wrote:

A partir du terminal on peut quitter la session en cours en faisant:

Prompt-$ osacript
Tell Application "Finder" To Quit
^D

(le ^D s'obtient par CTRL-D)


ou encore :

Prompt-$ echo Tell Application "Finder" To Quit |osascript

ce qui est plus facile à scripter.

Malgré tout ceci ne fait amha que quitter le Finder (ou le relancer)
(sous Panther tout au moins. Sous Tiger je ne sais pas). Je dis amha,
car il y a bien longtemps que chez moi j'ai autorisé le F à quitter,
tellemnet longtemps que je ne sais plus remettre le comportement par
défaut.

JPaul.

--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

Avatar
blanc
Stephane Dupille wrote:

Pour éviter de retenir les numéros, il existe un nom pour chacun des
signaux. Il est préférable d'utiliser ces noms à la place des numéros
: on a tout simplement un peu moins de chances de se planter.


Il y a une autre raison pour laquelle il vaut mieux utiliser les noms.
C'est que les numéros ne sont pas universels. Quand on passe d'un
système Unix à un autre, certains signaux peuvent changer de numéro. Par
contre les noms eux ne sont pas ambigus. Cependant il y a amha certains
numéros qui ne changeront jamais, à cause de leur utilisation standard à
la place du nom. Ce sont :
1 = HUP
2 = INT
3 = QUIT
9 = KILL
15 = TERM


Je remplacerai le -9 qui est violent par un -QUIT qui laisse une
chance aux applis de se terminer correctement, ce qui éviterait un
éventuel redémarage douloureux.


Oui mais le signal SIGTERM est encore mieux car :
1) il ne risque pas de créer de fichier core (dont on n'a que faire en
général) contrairement à SIGQUIT
2) c'est en fait le signal par défaut de la commande kill. Donc il
suffit de faire :
kill numéro(s)_de_process

Par contre le signal SIGKILL (-9) est le seul qui fonctionne pour
certains processus tels que les shells par exemple.

Les noms des signaux sont dans un man quelconque, certainement dans
kill(1) mais je n'ai pas de mac sous la main pour vérifier.


Suivant les machines :

man signal
man 7 signal
/usr/include/signal.h

Pour ceux que ça intéresse, je viens de mettre ici :
<http://llaic3.u-clermont1.fr/~blanc/iut/signaux.pdf>
une liste des signaux sur plusieurs machines avec les numéros
correspondants et une description en français.


Bien entendu, on utilise soit l'un, soit l'autre :
# kill -1 <pid>
# kill -HUP <pid>
sont totalement équivalents, mais le second est plus explicite.


Voir ci-dessus.

JPaul.
--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

Avatar
blanc
François Giron wrote:

Pour fermer sa propre session, je suppose que ça doit marcher comme
cela :

$ sudo kill -9 $(ps -auxcww | grep loginwindow | awk '/MOI/ { print
$2 }')

en remplaçant « MOI » par le nom de votre session.


Quelques remarques :
1) S'il s'agit de fermer sa propre session (et uniquement celle-ci), le
sudo est inutile, voire dangereux.

2) Pour la même raison le 'a' dans le ps est inutile puisqu'il signifie
"autres utilisateurs" ;

3) Par suite le /MOI/ est également inutile (mais on peut le garder par
sécurité) ;

4) le -9 est en général inutile également (voir autre message dans même
fil).

Donc finalement je retiendrais uniquement la commande suivante (que je
viens de tester, et qui n'a bien tué que ma session, et pas celle que
j'avais ouverte sous un autre nom :

kill $(ps uxcww | grep loginwindow |awk ' { print $2}')


Maintenant il existe une commande plus brutale que l'on utilise souvent
sous Unix/Linux quand on a un problème pour quitter une session.
*** Mais je ne vous la conseille pas sous Mac OS X ***, car je viens de
la tester en tant qu'admin (et pourtant sans mettre de sudo) :
la première fois elle m'a tué les deux sessions ouvertes, et la deuxième
fois, elle a carrément planter l'ordi ;-(
Cette commande est pourtant simple : kill -1 -1
Elle est censée envoyer un signal HANGUP à tous les process non
protégés, c'est-à-dire apartenant à l'utilisateur courant.
A éviter donc.

JPaul.
--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

Avatar
filh
JPaul wrote:

Stephane Dupille wrote:

Pour éviter de retenir les numéros, il existe un nom pour chacun des
signaux. Il est préférable d'utiliser ces noms à la place des numéros
: on a tout simplement un peu moins de chances de se planter.


Il y a une autre raison pour laquelle il vaut mieux utiliser les noms.
C'est que les numéros ne sont pas universels. Quand on passe d'un
système Unix à un autre, certains signaux peuvent changer de numéro. Par
contre les noms eux ne sont pas ambigus. Cependant il y a amha certains
numéros qui ne changeront jamais, à cause de leur utilisation standard à
la place du nom. Ce sont :
1 = HUP
2 = INT
3 = QUIT
9 = KILL
15 = TERM



En posix, les 31 premiers sont constants.

Si je me m'abuse...

FiLH

--
Le fondement du constat bourgeois, c'est le bon sens, c'est-à-dire
une vérité qui s'arrête sur l'ordre arbitraire de celui qui la parle.
Roland Barthes.
http://www.filh.org


Avatar
frangi
(JPaul) writes:

Stephane Dupille wrote:


Pour ceux que ça intéresse, je viens de mettre ici :
<http://llaic3.u-clermont1.fr/~blanc/iut/signaux.pdf>
une liste des signaux sur plusieurs machines avec les numéros
correspondants et une description en français.
JPaul.


Un grand merci. Voilà un travail fort utile pour les utilisateurs qui
ne sont pas informaticiens. :=)
--
====================================================
François GIRON -- Mac OS X 10.4.3 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html

====================================================

Avatar
frangi
(JPaul) writes:

François Giron wrote:

Pour fermer sa propre session, je suppose que ça doit marcher comme
cela :

$ sudo kill -9 $(ps -auxcww | grep loginwindow | awk '/MOI/ { print
$2 }')

en remplaçant « MOI » par le nom de votre session.


Quelques remarques :
1) S'il s'agit de fermer sa propre session (et uniquement celle-ci), le
sudo est inutile, voire dangereux.
Évidemment !

2) Pour la même raison le 'a' dans le ps est inutile puisqu'il signifie
"autres utilisateurs" ;
Mais bien sûr !

3) Par suite le /MOI/ est également inutile (mais on peut le garder par
sécurité) ;
Ben oui !

4) le -9 est en général inutile également (voir autre message dans même
fil).
C'est clair

Donc finalement je retiendrais uniquement la commande suivante (que je
viens de tester, et qui n'a bien tué que ma session, et pas celle que
j'avais ouverte sous un autre nom :

kill $(ps uxcww | grep loginwindow |awk ' { print $2}')


Je m'en vais tester ça, mais a priori, vu la clarté de ce qui précède,
ça ne peut que fonctionner.

Maintenant il existe une commande plus brutale que l'on utilise souvent
sous Unix/Linux quand on a un problème pour quitter une session.

*** Mais je ne vous la conseille pas sous Mac OS X ***, car je viens de
la tester en tant qu'admin (et pourtant sans mettre de sudo) :
la première fois elle m'a tué les deux sessions ouvertes, et la deuxième
fois, elle a carrément planter l'ordi ;-(
Cette commande est pourtant simple : kill -1 -1
Elle est censée envoyer un signal HANGUP à tous les process non
protégés, c'est-à-dire apartenant à l'utilisateur courant.
A éviter donc.

JPaul.


C'est un plaisir de lire des postes comme celui-ci. Merci.
--
====================================================
François GIRON -- Mac OS X 10.4.3 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html

====================================================


1 2 3 4