Vérifier si un screen est toujours en vie

Bonjour,

J’aimerai savoir comment vérifier si un screen est toujours en vie pour pouvoir l’inclure dans une condition d’un script shell. (Si le screen est toujours en vie ne rien faire, autrement exécuter x commande)

Merci d’avance !

Vérifie la liste des processus ?

Est-ce qu’il ne serait pas possible de récupérer l’output de la commande screen ?

screen -r test
There is no screen to be resumed matching test.

=> Si le système obtient cette réponse alors lancer commande X ?

Mais comment faire pour récupérer cette réponse ?

Désolé je connais mal screen :

[code]name=‘test’

if [ $(screen -r $name) == “There is no screen to be resumed matching $name.” ]; then
X
fi[/code]

./a.sh: line 3: [There: command not found

Il semblerait qu’il essaye de traiter la phrase comme une commande,
je vais essayer de voir comment régler ça avec le peu de connaissance que j’ai ^^

Edit : et c’est un échec ^^

2ème Edit : j’ai trouvé la réponse grâce au script que tu m’as fait hier (comme quoi il était vraiment multi usage !)

[code]#!/bin/sh

nom=‘test’

cd /var/run/screen/nomutilisateur

if [ $(ls -1 $nom | wc -l) == 1 ]; then
echo test;else
echo test2
fi[/code]

Merci encore une fois MisterFreez !

Juste une petite précision :

[code]#!/bin/sh

nom=‘test’

cd /var/run/screen/nomutilisateur

if [ $(ls -1 $nom | wc -l) -eq 1 ]; then
echo test;else
echo test2
fi[/code]

== permet de comparer deux chaîne de caractères et -eq permet de comparer deux nombres

Par contre une autre méthode pourrait être ainsi :

[code]#!/bin/sh

if [ -f /var/run/screen/nomutilisateur/$nom ]; then
echo test;else
echo test2
fi[/code]

Pourtant quand j’utilise == 1 ça fonctionne comme voulu, pareil quand j’utilise != 1,
ça fonctionne quand même mais il vaut mieux utiliser -eq pour des valeurs numérique ou
ça ne devrait pas fonctionner ?

[quote=“Solidstatedrive”]Pourtant quand j’utilise == 1 ça fonctionne comme voulu, pareil quand j’utilise != 1,
ça fonctionne quand même mais il vaut mieux utiliser -eq pour des valeurs numérique ou
ça ne devrait pas fonctionner ?[/quote]
Tant que le caractère “1” est égale à lui même c’est surtout important pour les comparaison du style inferieur/superieur.

Préfère la solution avec -f qui permet de ne pas lancer de programme externe :slight_smile:

Bonjour,

La commande screen -ls te donne la liste des screen disponible pour le user en cours.

Merci micky, mais je le savais déjà.
Malheureusement je ne sais pas récupérer l’output de cette commande, c’est pour ça que je suis passé par d’autres chemins. Comme pour tuer le screen s’il est encore vivant alors qu’il ne devrait plus l’être, je me suis un peu intéresser à awk et j’utilise un moyen détourné.