Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/10/2008, à 14:56

llwynrt

[résolu] commande who -m et script lancé au démarrage

bonjour

pour un script j'ai besoin de récupérer l'utilisateur actif, avec who -m. ça marche très bien si je lance le script à la main, mais s'il est copié dans /etc/init.d pour être lancé au démarrage, who -m ne renvoit apparemment plus rien ...

comment faire pour que ça marche ?

Marie-Lyse

Dernière modification par llwynrt (Le 27/10/2008, à 22:20)


Les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpréter, parfois ça peut vouloir dire quelque chose !

Hors ligne

#2 Le 20/10/2008, à 15:10

Zakhar

Re : [résolu] commande who -m et script lancé au démarrage

Je conjecturerais bien que les scripts qui tournent dans init.d tournent avant même qu'un utilisateur soit logé, et donc le résultat paraît naturel.

Peux-tu décrire un peu plus ce que tu veux faire (le besoin plus précis) il y a peut-être d'autres solutions.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 20/10/2008, à 15:17

llwynrt

Re : [résolu] commande who -m et script lancé au démarrage

le script tourne en boucle, mais une fois logé, ça ne marche toujours pas.
c'est pour un programme de contrôle parental, tant qu'un utilisateur est connecté, le script décrémente le temps restant toutes les minutes.

Marie-Lyse


Les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpréter, parfois ça peut vouloir dire quelque chose !

Hors ligne

#4 Le 27/10/2008, à 22:20

llwynrt

Re : [résolu] commande who -m et script lancé au démarrage

j'ai trouvé pourquoi ça ne marche pas !!
who -m ne renvoi pas l'utilisateur actif, mais celui qui lance la commande, donc si c'est lancé en root, ça ne peut pas marcher ...

tant pis, faut que je trouve autre chose


Les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpréter, parfois ça peut vouloir dire quelque chose !

Hors ligne

#5 Le 27/10/2008, à 22:45

HP

Re : [résolu] commande who -m et script lancé au démarrage

llwynrt a écrit :

who -m ne renvoi pas l'utilisateur actif, mais celui qui lance la commande, donc si c'est lancé en root, ça ne peut pas marcher ...

ah… chez moi sudo who -m renvoi bien l'utilisateur… et non pas root… pas comme whoami…


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#6 Le 28/10/2008, à 09:33

llwynrt

Re : [résolu] commande who -m et script lancé au démarrage

oui mais si tu le lance dans le crontab de root, ou au démarrage dans le fichier rc.local, ça ne renvoi rien du tout ...


Les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpréter, parfois ça peut vouloir dire quelque chose !

Hors ligne

#7 Le 28/10/2008, à 09:34

HP

Re : [résolu] commande who -m et script lancé au démarrage

llwynrt a écrit :

oui mais si tu le lance dans le crontab de root

arf… oui, forcément…


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#8 Le 30/10/2008, à 14:58

Gérard B4

Re : [résolu] commande who -m et script lancé au démarrage

Et si on utilisait plutôt who -u
Sur mon poste, le(s) utilisateur(s) qui ont une session ouverte ont une ligne avec qque chose en tty, donc en couplant ça avec grep tty, ça pourrait le faire? Avec un cut en prime pour isoler le nom de(s) utilisateur(s) ça donne:

 who -u | grep tty | cut -d" " -f1

Le problème c'est qu'il peut y avoir plusieurs utilisateurs, et qu'il va falloir traiter chacun d'eux un par un dans ton script.

Hors ligne

#9 Le 30/10/2008, à 21:49

llwynrt

Re : [résolu] commande who -m et script lancé au démarrage

Gérard B4 a écrit :

Le problème c'est qu'il peut y avoir plusieurs utilisateurs, et qu'il va falloir traiter chacun d'eux un par un dans ton script.

justement, je veux trouver celui qui est actif, pas les autres ...


Les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpréter, parfois ça peut vouloir dire quelque chose !

Hors ligne

#10 Le 30/10/2008, à 22:14

Totor

Re : [résolu] commande who -m et script lancé au démarrage

llwynrt a écrit :
Gérard B4 a écrit :

Le problème c'est qu'il peut y avoir plusieurs utilisateurs, et qu'il va falloir traiter chacun d'eux un par un dans ton script.

justement, je veux trouver celui qui est actif, pas les autres ...

ben justement, il peux y en avoir plusieurs wink
rien ne t'empêche d'avoir plusieurs term ou consoles d'ouverts et d'actifs en même temps...

pour savoir quels sont les utilisateurs connectés :

who -u
who -q

Dernière modification par Totor (Le 30/10/2008, à 22:36)


-- Lucid Lynx --

Hors ligne

#11 Le 30/10/2008, à 22:24

Zakhar

Re : [résolu] commande who -m et script lancé au démarrage

llwynrt a écrit :
Gérard B4 a écrit :

Le problème c'est qu'il peut y avoir plusieurs utilisateurs, et qu'il va falloir traiter chacun d'eux un par un dans ton script.

justement, je veux trouver celui qui est actif, pas les autres ...

Ah mais... Linux n'est pas Windows big_smile

Linux est un système multi-utilisateurs, et donc il peut y avoir plusieurs utilisateurs sur la même machine. Il suffit d'ouvrir un telnet ou une session X11 à distance. Tu peux même le faire depuis le panneau de connexion.

Si c'est une fonction que tu n'utilises pas dans ton cas, tu peux alors te baser sur celui qui possède le tty7 (c'est le terminal X par défaut sur ton PC).

CTRL-ALT-F1 => tu vas sur la première console texte
CTRL-ALT-F7 => tu reviens sur la session X11 (c'est donc bien le tty7 par défaut)

Et plutôt un who -a suivi d'un grep comme expliqué plus haut puisque root aura lancé le who en cron.

Attention cependant, ce genre de technique n'est pas complètement fiable !
J'ai fait un cron avec du who pour couper le PC selon certains critères de non-activité. Mais la seule activité reportée par who est celle du clavier, la souris n'est pas pris en compte. C'est logique vu que who est un héritage des tout premiers linux, et la souris n'était pas encore inventée à l'époque ! L'architecture sur laquelle il est basé est aussi assez moche !

Dernière modification par Zakhar (Le 30/10/2008, à 22:27)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#12 Le 30/10/2008, à 22:56

Totor

Re : [résolu] commande who -m et script lancé au démarrage

Pour savoir quels sont les users connectés en session X (je pense que c'est ce qui se rapproche le plus de ce que tu attends, non ?) :

w|grep :[0-9][^0-9]

mais cela n'empêche qu'effectivement, tu peux avoir d'autres users en consoles... Par ailleurs, dans ta session X, tu peux très bien être connecté avec un autre utilisateur dans un term... (via la commande su)
(sans compter sur le machines virtuelles que tu ne pourras controler !!!)


-- Lucid Lynx --

Hors ligne

#13 Le 31/10/2008, à 09:24

llwynrt

Re : [résolu] commande who -m et script lancé au démarrage

en clair : si je me connecte avec le compte machin, puis change pour l'utilisateur truc, sans déconnecter l'utilisateur machin, je veux une commande qui renvoi "truc", mais lancé par le crontab de root. je veux l'identifiant de celui qui utilise l'écran à l'instant ou je lance le script, même si plusieurs utilisateurs sont connectés. en gros ce que j'appelle l'utilisateur "actif".

cette commande fait exactement ce que je veux :

gdmflexiserver -a -c QUERY_VT

http://forum.ubuntu-fr.org/viewtopic.ph … 8#p2144978
sauf lancé dans le crontab de root ou là j'ai une erreur d'authentification.

Dernière modification par llwynrt (Le 31/10/2008, à 09:28)


Les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpréter, parfois ça peut vouloir dire quelque chose !

Hors ligne

#14 Le 31/10/2008, à 10:26

Gérard B4

Re : [résolu] commande who -m et script lancé au démarrage

Dans l'optique d'un contrôle parental simple, je suis partisan de décompter non seulement le temps de truc mais aussi celui de l'utilisateur machin (qui a laissé sa session ouverte plutot que de la refermer). Il faut apprendre à nos enfants à prendre de bonnes habitudes et à refermer leurs sessions, puisque si on décide d'arréter la machine, ils vont perdre des données (s'il avaient un document en cours d'édition par exemple).
Donc quand la tache "cronée" arrive, elle voit qu'il a truc et machin, et leur décompte une minute d'utilisation à chacun.

Hors ligne

#15 Le 31/10/2008, à 10:33

llwynrt

Re : [résolu] commande who -m et script lancé au démarrage

si par exemple, l'enfant est en train de faire quelque chose qu'il ne veut pas quitter et qu'un des parents a besoin de l'ordinateur pour quelques minutes, je trouve dommage de forcer l'enfant à quitter ou de lui décompter du temps ... après si je trouve pas, tant pis !


Les erreurs Windows, c'est un peu comme les rêves, il faut savoir les interpréter, parfois ça peut vouloir dire quelque chose !

Hors ligne