[Gnu Screen] Problème suite à mise à jours (résolu)

Applications, problèmes de configuration réseau
Nyutag
Hankyu
Messages : 44
Inscription : mar. 20 avr. 2010, 10:41

[Gnu Screen] Problème suite à mise à jours (résolu)

Message par Nyutag »

Depuis ma mise à jours de ce matin (cf ci-dessous), mes scripts bash utilisant gnu screen ne fonctionnent plus. Je voudrais juste savoir si je suis le seul dans ce cas? Merci.

pacman.log

Code : Tout sélectionner

[2012-07-24 08:34] Running 'pacman -Sy'
[2012-07-24 08:34] synchronizing package lists
[2012-07-24 08:34] Running 'pacman -S -u'
[2012-07-24 08:34] starting full system upgrade
[2012-07-24 08:35] upgraded readline (6.2.003-2 -> 6.2.004-1)
[2012-07-24 08:35] upgraded bash (4.2.036-1 -> 4.2.037-1)
[2012-07-24 08:35] upgraded bison (2.5.1-1 -> 2.6-1)
[2012-07-24 08:35] upgraded lib32-gcc-libs (4.7.1-4.1 -> 4.7.1-5)
[2012-07-24 08:35] upgraded gcc-libs-multilib (4.7.1-4.1 -> 4.7.1-5)
[2012-07-24 08:35] upgraded icu (49.1.2-1 -> 49.1.2-2)
[2012-07-24 08:35] upgraded boost-libs (1.50.0-1 -> 1.50.0-2)
[2012-07-24 08:35] upgraded boost (1.50.0-1 -> 1.50.0-2)
[2012-07-24 08:35] upgraded imagemagick (6.7.8.4-1 -> 6.7.8.6-1)
[2012-07-24 08:35] upgraded calibre (0.8.60-1 -> 0.8.61-1)
[2012-07-24 08:35] upgraded dbus-core (1.6.2-2 -> 1.6.4-1)
[2012-07-24 08:35] upgraded dbus (1.6.2-1 -> 1.6.4-1)
[2012-07-24 08:35] upgraded flex (2.5.35-5 -> 2.5.36-1)
[2012-07-24 08:35] upgraded gcc-multilib (4.7.1-4.1 -> 4.7.1-5)
[2012-07-24 08:35] upgraded geoip-database (20120615-1 -> 20120706-1)
[2012-07-24 08:35] upgraded git (1.7.11.2-1 -> 1.7.11.3-1)
[2012-07-24 08:35] upgraded glib2 (2.32.3-1 -> 2.32.4-1)
[2012-07-24 08:35] upgraded glibmm (2.32.0-1 -> 2.32.1-1)
[2012-07-24 08:35] upgraded glproto (1.4.15-1 -> 1.4.16-1)
[2012-07-24 08:35] upgraded gnutls (3.0.21-1 -> 3.0.21-2)
[2012-07-24 08:35] upgraded gtk-update-icon-cache (2.24.10-3 -> 2.24.11-2)
[2012-07-24 08:35] upgraded libcups (1.5.3-5 -> 1.5.3-6)
[2012-07-24 08:35] upgraded gtk2 (2.24.10-3 -> 2.24.11-2)
[2012-07-24 08:35] upgraded gtk3 (3.4.3-1 -> 3.4.4-1)
[2012-07-24 08:35] upgraded khrplatform-devel (8.0.4-1 -> 8.0.4-2)
[2012-07-24 08:35] upgraded libglapi (8.0.4-1 -> 8.0.4-2)
[2012-07-24 08:35] upgraded libegl (8.0.4-1 -> 8.0.4-2)
[2012-07-24 08:35] upgraded libmp4v2 (2.0.0-1 -> 2.0.0-2)
[2012-07-24 08:35] upgraded libpulse (2.0-2 -> 2.1-1)
[2012-07-24 08:35] upgraded libtracker-sparql (0.14.1-1 -> 0.14.2-1)
[2012-07-24 08:35] >>> Updating module dependencies. Please wait ...
[2012-07-24 08:35] >>> Generating initial ramdisk, using mkinitcpio.  Please wait...
[2012-07-24 08:35] ==> Building image from preset: 'default'
[2012-07-24 08:35]   -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
[2012-07-24 08:35] ==> Starting build: 3.4.6-1-ARCH
[2012-07-24 08:35]   -> Running build hook: [base]
[2012-07-24 08:35]   -> Running build hook: [udev]
[2012-07-24 08:35]   -> Running build hook: [autodetect]
[2012-07-24 08:35]   -> Running build hook: [pata]
[2012-07-24 08:35]   -> Running build hook: [scsi]
[2012-07-24 08:35]   -> Running build hook: [sata]
[2012-07-24 08:35]   -> Running build hook: [filesystems]
[2012-07-24 08:35]   -> Running build hook: [usbinput]
[2012-07-24 08:35]   -> Running build hook: [fsck]
[2012-07-24 08:35] ==> Generating module dependencies
[2012-07-24 08:35] ==> Creating gzip initcpio image: /boot/initramfs-linux.img
[2012-07-24 08:35] ==> Image generation successful
[2012-07-24 08:35] ==> Building image from preset: 'fallback'
[2012-07-24 08:35]   -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
[2012-07-24 08:35] ==> Starting build: 3.4.6-1-ARCH
[2012-07-24 08:35]   -> Running build hook: [base]
[2012-07-24 08:35]   -> Running build hook: [udev]
[2012-07-24 08:35]   -> Running build hook: [pata]
[2012-07-24 08:35]   -> Running build hook: [scsi]
[2012-07-24 08:35]   -> Running build hook: [sata]
[2012-07-24 08:35]   -> Running build hook: [filesystems]
[2012-07-24 08:35]   -> Running build hook: [usbinput]
[2012-07-24 08:35]   -> Running build hook: [fsck]
[2012-07-24 08:35] ==> Generating module dependencies
[2012-07-24 08:35] ==> Creating gzip initcpio image: /boot/initramfs-linux-fallback.img
[2012-07-24 08:35] ==> Image generation successful
[2012-07-24 08:35] upgraded linux (3.4.5-1 -> 3.4.6-1)
[2012-07-24 08:35] upgraded linux-api-headers (3.4.4-1 -> 3.4.6-1)
[2012-07-24 08:35] upgraded lirc-utils (1:0.9.0-21 -> 1:0.9.0-22)
[2012-07-24 08:35] upgraded mesa (8.0.4-1 -> 8.0.4-2)
[2012-07-24 08:35] upgraded mkvtoolnix-cli (5.7.0-2 -> 5.7.0-3)
[2012-07-24 08:35] upgraded mkvtoolnix-gtk (5.7.0-2 -> 5.7.0-3)
[2012-07-24 08:35] upgraded nvidia (302.17-3 -> 302.17-4)
[2012-07-24 08:35] upgraded php-apc (3.1.10-3 -> 3.1.11-1)
[2012-07-24 08:35] >>> If you have per-user copies of configuration files (such as client.conf,
[2012-07-24 08:35]     daemon.conf or default.pa) in ~/.pulse/, make sure you keep them in sync
[2012-07-24 08:35]     with changes to the packaged files in /etc/pulse/. Otherwise, PulseAudio
[2012-07-24 08:35]     may refuse to start due to configuration errors.
[2012-07-24 08:35] upgraded pulseaudio (2.0-2 -> 2.1-1)
[2012-07-24 08:35] upgraded qt (4.8.2-2 -> 4.8.2-3)
[2012-07-24 08:35] upgraded svga-dri (8.0.4-1 -> 8.0.4-2)
[2012-07-24 08:35] upgraded taglib (1.7.2-1 -> 1.7.2-2)
[2012-07-24 08:35] upgraded tzdata (2012c-1 -> 2012d-1)
[2012-07-24 08:36] upgraded vlc (2.0.2-2 -> 2.0.3-1)
[2012-07-24 08:36] upgraded xf86-video-chips (1.2.4-4 -> 1.2.5-1)
[2012-07-24 08:36] upgraded xf86-video-dummy (0.3.5-1 -> 0.3.6-1)
[2012-07-24 08:36] upgraded xf86-video-vesa (2.3.1-1 -> 2.3.2-1)
Message dans le terminal après invocation de screen -d -m -L -S custom /path/to/bash/script

Code : Tout sélectionner

Must be connected to a terminal.
Je précise que j'ai un accès direct à la machine, c'est à dire que je ne passe pas par ssh.

Résolution via debugging des scripts. A priori, non lié aux dernières mise à jours.
Dernière modification par Nyutag le mar. 24 juil. 2012, 17:01, modifié 2 fois.
Avatar de l’utilisateur
vlamy
yeomen
Messages : 268
Inscription : ven. 20 juil. 2012, 15:19
Localisation : Grenoble

Re: [Gnu Screen] Problème suite à mise à jours

Message par vlamy »

Salut !
Chez moi pas de problèmes entre screen et bash.

Par contre tu aurais le contenu de ton script ou c'est confidentiel?
Je me demande bien ce que tu peux y lancer qui ne pourrait être lancé par un .bashrc :)

Par ailleurs je fais un essaie sur ma bécanne si tu veux.
Nyutag
Hankyu
Messages : 44
Inscription : mar. 20 avr. 2010, 10:41

Re: [Gnu Screen] Problème suite à mise à jours

Message par Nyutag »

Merci beaucoup pour ta réponse. Le problème est donc ailleurs.

Mes scripts ne sont pas vraiment confidentiels, c'est juste qu'ils sont très custom en fait donc sauf si tu veux installer un serveur minecraft qui te préviens par mail des nouvelles connection et qui update la liste des personnes connectés sur ton conky, ça n'a pas vraiment d'interêt. Surtout que j'ai pas codé la chose pour quelle soit utilisable pour quelqu'un d'autre. Du coup, avant que ça fonctionne chez quelqu'un que ça interresse, il faudrait que je retravaille le code.

Ce qui m'embête, c'est que j'ai commenté toute mes modifs recentes dans le script pour le faire revenir à hier soir et il ne fonctionne plus, du coup, comme si c'était une fatalité, j'ai invoqué la maj de bash (ou autre) comme étant la source de mes problèmes. J'ai du me tromper.

J'ai chercher sur google avant de poster ici mais je ne suis tombé que sur des topics traitant d'un problème entre screen et ssh, ce qui n'a rien avoir avec mon problème.

Donc en postant ici, je n'attendais pas vraiment une solution, juste savoir si j'étais le seul dans ce cas. Vu que cela à l'air d'être le cas, je pense repartir from scratch et ajouter les fonction une par une.

Je passe en résolu mais je reste abonné au sujet, si quelqu'un à un cas similaire d'un soucis entre script bash et screen.
Avatar de l’utilisateur
vlamy
yeomen
Messages : 268
Inscription : ven. 20 juil. 2012, 15:19
Localisation : Grenoble

Re: [Gnu Screen] Problème suite à mise à jours (résollu)

Message par vlamy »

Re.
En fait je te posais la question pour reproduire le bug. Si tu as un exemple de bout de script qui ne passe pas chez toi, cela suffirait à faire un test
.
Sinon, dans la configuration de screen il y a ce qu'il faut, me semble-t'il, pour lancer des scripts au démarrage de la session.
C'est bien ce que tu veux faire? Un script lancé par session screen?
Nyutag
Hankyu
Messages : 44
Inscription : mar. 20 avr. 2010, 10:41

Re: [Gnu Screen] Problème suite à mise à jours (résollu)

Message par Nyutag »

Update:

Les scripts refonctionnent correctement, j'avais effacé un peu trop de code par inattention.

Néanmoins, dans le fichier de log screen, j'ai toujours le même message.

Code : Tout sélectionner

Must be connected to a terminal.
Résolu: screen -r minecraft ne dois pas être utilisé avec tail!

Voila la trame principale du script:

Code : Tout sélectionner

tail -f -n 1 $serveur-minecraft/screenlog.0 | while read -r line
do
[[ "$line" = *"logged in with entity"* ]] && FONCTION
done
[HS]J'ai lu quelque part que tail -f dans un script bash, c'est sale, mais je n'ai pas vu d'autre alternative (en bash) pour obtenir le même effet.[/HS]

Après les conditions et fonctions sont multiples. Mais seules les fonctions interagissant avec d'autre session screen provoque cette erreur.

Code de l'une de ces fonctions

Code : Tout sélectionner

SHAMAN () {
	screen -S minecraft -p 0 -X eval 'stuff "toggledownfall"\012'
	screen -r minecraft
}
où toggledownfall est une commande propre au server.
La commande fonctionne, changement de climat ingame, mais message d'erreur au même moment dans la session screen custom.

Je ne sais pas si je dois ignorer le message où si je dois le prendre au sérieux et chercher la petite bête.

EDIT:

J'ai trouvé quelque chose qui fonctionnais avant sur un vieu script et qui ne fonctionne plus aujourd'hui. Déclarer une variable puis la passer à screen.

Code : Tout sélectionner

SAY () {
	screen -S minecraft -p 0 -X eval 'stuff "say [message automatique] $voice"\012'
	screen -r minecraft
}

case $1 in
[...]
	"say")
	voice=$2
	SAY
[...]
Avant, je ne saurais dire la dernière fois que j'ai utilisé cette fonction, le contenu de la variable voice était bien lu par screen. Désormais, il considère la variable comme vide. J'ai essayé, pour test, de déclarer une variable voice dans la fonction, même résultat.

Je répond une dernière fois, j'ai trouvé le nouvel astuce, rajouter des single quote.

Solution:

Code : Tout sélectionner

SAY () {
	screen -S minecraft -p 0 -X eval 'stuff "say [message automatique] '$voice'"\012'
	screen -r minecraft
}
Répondre