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 26/05/2016, à 16:12

Enad

Comment lancer un script au démarrage d'une session + récup login ?

Bonjour,

J'aimerai créer un script bash qui se lance a l'ouverture de session pour tous les utilisateurs (que ça soit des comptes utilisateurs en local ou externe dans un domaine sur un serveur).

Pour cela, j'ai 2 questions :

- Ou placer le script pour qu'il soit systématiquement lancé pour tous les utilisateurs ?

- Dans ce script, j'ai besoin de connaître le nom de l'utilisateur qui se connecte, comment faire pour récupérer le login dans la variable ? (sachant que je ne connais pas le login a l'avance qui se connecte).

Exemple : un utilisateur "toto" se connecte sur sa session, le script se lance au démarrage de session, et il copie un fichier dans son dossier personnel (donc par exemple dans /home/toto).
comment lancer la commande de copie dans le script sans connaître le login ? si je met un cp fichier ~/destination, ça le créera certainement dans le /root (a moins le script soit lancé automatiquement avec l'utilisateur correspondant a l'ouverture de session?)

cordialement;

Hors ligne

#2 Le 26/05/2016, à 16:27

jplemoine

Re : Comment lancer un script au démarrage d'une session + récup login ?

A vérifier mais je pense que c'est l'utilisateur qui le lance : donc ~/ doit fonctionner.
De mémoire, on doit aussi pouvoir utiliser $USER qui est le nom de l'utilisateur connecté (mais si on fait un "sudo" ?).
pour l'emplacement, je crois que ça dépend si on est en texte ou en graphique --> il faut peut-être mettre un lien dans chaque emplacement (texte / graphique) vers 1 fichier qui contient le code.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 26/05/2016, à 16:43

Enad

Re : Comment lancer un script au démarrage d'une session + récup login ?

Ok mais dans quel répertoire le script doit être placé  ? (pour un chargement de session graphique).

Hors ligne

#4 Le 27/05/2016, à 15:45

abitbold

Re : Comment lancer un script au démarrage d'une session + récup login ?

La réponse m’intéresse aussi.
Tout ce que je peux dire, c'est que ce n'est pas dans "/etc/skel", qui lui est lancé a chaque création de profil utilisateur.

Dernière modification par abitbold (Le 27/05/2016, à 15:47)

Hors ligne

#5 Le 27/05/2016, à 16:41

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

Bonjour,
En créant un lanceur en .desktop et placé dans /etc/xdg/autostart, cela devrait fonctionner.
Mais il faut aussi voir de quoi a besoin le script pour s'exécuter.

EDIT : testé avec succès en faisant jouer une musique à l'ouverture de la session.

Dernière modification par Compte supprimé (Le 27/05/2016, à 17:07)

#6 Le 30/05/2016, à 10:46

abitbold

Re : Comment lancer un script au démarrage d'une session + récup login ?

Ca ne fonctionne que pour Gnome du coup ?

Hors ligne

#7 Le 30/05/2016, à 11:06

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

C'est testé sur Xubuntu 16.04. Quel est ton environnement de bureau ? Mais j'espère que /etc/xdg/autostart est lu par tous.
https://specifications.freedesktop.org/ … 01s02.html

Dernière modification par Compte supprimé (Le 30/05/2016, à 11:10)

#8 Le 30/05/2016, à 11:22

abitbold

Re : Comment lancer un script au démarrage d'une session + récup login ?

J'ai bien le répertoire, je suis en train de me documenter pour faire un .desktop, mais j'imaginai plus une solution utilisable sur tout les linux. Avec ou sans interface.

Dernière modification par abitbold (Le 30/05/2016, à 11:23)

Hors ligne

#9 Le 30/05/2016, à 11:26

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

C'est bien le cas, utilisable chez tous ceux qui respectent les normes freedesktop.

Voila le lancement de radiotray comme exemple.

[Desktop Entry]
Name=Radio Tray
Terminal=false
Exec=radiotray 
Icon=radiotray
Type=Application
Categories=AudioVideo;Audio;Player;GTK;

Dernière modification par Compte supprimé (Le 30/05/2016, à 11:30)

#10 Le 30/05/2016, à 11:31

abitbold

Re : Comment lancer un script au démarrage d'une session + récup login ?

Et pour un fichier .sh qui n'est pas une application ?

Hors ligne

#11 Le 30/05/2016, à 11:35

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

Tu écris le chemin vers le script. Et tu penses à cocher la case des permissions pour le rendre exécutable.
Le script sera lancé à l'ouverture de la session, ça marche aussi en tty, session non graphique.
Pas réussi à le reproduire.

Dernière modification par Compte supprimé (Le 30/05/2016, à 17:44)

#12 Le 30/05/2016, à 14:02

abitbold

Re : Comment lancer un script au démarrage d'une session + récup login ?

En effet, c'est assez simple :

[Desktop Entry]
Type=Application
Name=Démarrage du Script
Exec=/home/Script.sh
NoDisplay=true

Hors ligne

#13 Le 30/05/2016, à 14:03

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

Tu as atteint ton objectif ?

#14 Le 30/05/2016, à 14:45

abitbold

Re : Comment lancer un script au démarrage d'une session + récup login ?

Moi oui, Enad je ne sais pas

Hors ligne

#15 Le 30/05/2016, à 15:08

Watael

Re : Comment lancer un script au démarrage d'une session + récup login ?

Tamarou a écrit :

Le script sera lancé à l'ouverture de la session, ça marche aussi en tty, session non graphique.

comment cela peut-il fonctionner alors que le terminal ne respecte pas la "norme" freedesktop (!), et qu'aucune session X n'est lancée ???


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#16 Le 30/05/2016, à 17:45

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

@Watael
Effectivement je n'arrive plus à le reproduire, j'avais dû tester dans de mauvaises conditions. Il reste a utiliser rc.local et activer son service systemd.
Sur une xubuntu 16.04 fraîche, les commandes ajoutées dans /etc/rc.local sont bien exécutées au lancement sans avoir à activer un service systemd.

Dernière modification par Compte supprimé (Le 31/05/2016, à 14:25)

#17 Le 30/05/2016, à 17:58

Watael

Re : Comment lancer un script au démarrage d'une session + récup login ?

je vais t'asticoter encore un peu, alors que je ne vois pas de solution : au démarrage de la machine (appel dans rc.local), le script n'aura pas accès au nom de l'utilisateur qui se connecte. sad


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#18 Le 30/05/2016, à 18:37

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

Là tu poses une contrainte qui n'est pas dans le contexte ci-dessus.
Tout dépend de ce que fait le script.

#19 Le 30/05/2016, à 18:54

Watael

Re : Comment lancer un script au démarrage d'une session + récup login ?

Enad a écrit :

créer un script bash qui se lance a l'ouverture de session pour tous les utilisateurs[...]
- Dans ce script, j'ai besoin de connaître le nom de l'utilisateur qui se connecte,[...]


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#20 Le 30/05/2016, à 19:16

Compte supprimé

Re : Comment lancer un script au démarrage d'une session + récup login ?

Et oui, on a dérivé du point de départ, on a même changé de demandeur smile

#21 Le 31/05/2016, à 18:34

bertrand0

Re : Comment lancer un script au démarrage d'une session + récup login ?

Personnellement, je créerais un fichier de service approprié dans "/etc/systemd/user" qui se chargerait de lancer le script voulu dans chaque session utilisateur; c'est à ça que sert systemd après tout (entre autres)...
Allez voir les pages de man systemd.unit et systemd.service en ce qui concerne la syntaxe du fichier .service
et la page de man systemd.exec en ce qui concerne les variables d'environnement qui sont passées aux processus créés (notamment, $HOME, $USER...)

Si vous avez une ancienne version de Ubuntu utilisant upstart on doit pouvoir faire de même, mais je ne sais pas où se trouve la doc...

Dernière modification par bertrand0 (Le 31/05/2016, à 18:41)


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne