J'ai un script shell personnalisé qui s'exécute chaque fois qu'un utilisateur se connecte ou que l'identité est supposée, il est placé dans /etc/profile.d et effectue certaines opérations de variable d'environnement de base. Récemment j'ai ajouté du code de sorte que si l'écran est en cours d'exécution il le rattachera sans avoir besoin de taper quoi que ce soit. Il y a cependant quelques problèmes. Si je me connecte en tant que root, et su - à un autre utilisateur, le code s'exécute une seconde fois. Y a-t-il une variable que je peux définir quand le code s'exécute la première fois qui empêchera une deuxième exécution du code?Qu'est-ce qui est commun entre les environnements dans une session de terminal shell?
Je pensais écrire quelque chose sur le disque, mais je ne veux pas empêcher le code de fonctionner si je commence une nouvelle session de terminal. Voici le code en question. Il essaie d'abord de rattacher - s'il échoue parce qu'il est déjà attaché (comme cela pourrait être le cas lors d'une session interrompue), il «reprendra» la session.
screen -r
if [ -z "$STY" ]; then
exec screen -dR
fi
En fin de compte ce bug me empêche de se substituer utilisateur à un autre parce que dès que je le fais, il saisit la session de l'écran et me met tout de suite où j'ai commencé. Assez frustrant
Je comprends où vous allez avec la suggestion cependant - comme j'ai répondu - j'ai ajouté ce code au répertoire de profil encore quand je substitue l'utilisateur (qui devrait seulement courir le 'bashrc' selon l'article) le code est toujours exécuté –