C'est une question que j'ai vue plusieurs fois pour plusieurs saveurs Linux, essayons donc d'être exhaustive.
[.____] Quelle est la méthode pour exécuter script/commande/programme avant et après la connexion de l'utilisateur dans sa session de bureau?
Pour exécuter un programme dans l'environnement graphique avant qu'un utilisateur connecté dans un environnement graphique dépend de votre gestionnaire d'affichage. Un gestionnaire d'affichage est chargé de vous fournir une interface de connexion et de configurer votre environnement graphique une fois connecté.
[.____] Les plus importants sont les suivants:
Nous allons examiner comment configurer l'exécution de la commande lorsque le gestionnaire d'affichage contextuel avant tout utilisateur connecté et comment exécuter quelque chose lorsque quelqu'un est enfin connecté.
Si vous ne connaissez pas lequel vous êtes en cours d'exécution, vous pouvez vous référer à cette question:
[.____] Y a-t-il une simple commande Linux qui me dira quel est mon gestionnaire d'affichage?
[~ # ~] Important [~ # ~]
Avant de commencer, vous allez modifier le fichier que, sauf si la mention exécute la commande root
. Ne retirez pas les éléments existants dans ces fichiers, sauf si vous savez ce que vous faites et faites attention à ce que vous mettez dans ces fichiers. Cela pourrait supprimer votre capacité à vous connecter.
Soyez prudent avec GDM, il exécutera tout script comme root
, un code d'erreur différent de 0 pourrait limiter votre capacité de connexion et GDM attendront que votre script ait fini de le rendre irresponsable tant que votre commande fonctionne.
Pour une explication complète Lire la documentation .
Si vous devez exécuter des commandes avant qu'un utilisateur connecté, vous pouvez modifier le fichier:
[.____] /etc/gdm3/Init/Default
.
[.____] Ce fichier est un script shell qui sera exécuté avant que le gestionnaire d'affichage ne soit affiché à l'utilisateur.
Si vous devez exécuter des choses une fois qu'un utilisateur s'est connecté, mais avant que sa session ait été initialisée, modifiez le fichier:
[.____] /etc/gdm3/PostLogin/Default
Si vous souhaitez exécuter la commande après la session d'initialisation de la session (ENV, environnement graphique, login ...) Modifier le fichier:
[.____] /etc/gdm3/PreSession/Default
Je parlerai de lightdm.conf et non sur /etc/lightdm.conf.d/*.conf. Vous pouvez faire ce que vous voulez ce qui est important est de connaître les options que vous pouvez utiliser. Soyez prudent avec LightDM, vous pouvez déjà avoir plusieurs autres scripts de démarrage que vous devriez lire précisément votre fichier de configuration avant de la modifier. De plus, l'ordre dans lequel vous mettez que ces script pourraient influencer la manière dont la session charge.
LightDM fonctionne un peu différemment des autres que vous mettrez des options dans les fichiers de configuration principaux pour indiquer le script qui sera exécuté.
[.____] Modifier le fichier Conf principal LightDM:
[.____] /etc/lightdm/lightdm.conf
[.____] Ajouter une ligne greeter-setup-script=/my/path/to/script
[.____] Ce script sera exécuté lorsque LightDM affiche l'interface de connexion.
Vous pouvez éditer /etc/lightdm/lightdm.conf
Encore une fois et ajouter une ligne:
[.____] session-setup-script=/script/to/start/script
Ceci exécutera le script comme root
après un utilisateur connecté avec succès.
Si vous souhaitez exécuter la commande avant que quiconque connectée, vous pouvez modifier le script Shell:
[.____] /etc/lxdm/LoginReady
Si vous souhaitez exécuter la commande après une personne connectée mais en tant que root, vous pouvez modifier le script Shell:
[.____] /etc/lxdm/PreLogin
[.____] et si vous souhaitez exécuter la commande comme utilisateur connecté, vous pouvez modifier le script:
[.____] /etc/lxdm/PostLogin
Impossible de trouver des informations appropriées à ce sujet ... N'hésitez pas à éditer cette partie.