#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
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
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
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
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
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
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
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