[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Récupérer un script en cours d'execution



Le 11/06/2010 14:47, Jacques-Daniel PILLON a écrit :
> Le vendredi 11 juin 2010 à 03:28 +0200, Goldy a écrit :
>> Bonsoir à tous,
>>
> 
> Bonjour,
> 
> il est possible de générer un fichier core avec la commande gcore
> (paquet gdb) :
> 
> $ gcore PID
> 
> D'après mes tests, le fichier core généré contient le code source du
> script bash exécuté.
> 
> Procédure de test :
> 
> Fichier test.sh :
> 
> #!/bin/sh
> 
> while(true) ; do
> 	echo "toto"
> 	sleep 2
> done
> 
> Script lancé dans un terminal, puis le fichier source supprimé :
> 
> jdpillon@devel:~$ lsof | grep test.sh | grep deleted
> test.sh   20157   jdpillon   10r      REG       8,17       55
> 344084 /home/jdpillon/bin/test.sh (deleted)
> jdpillon@devel:~$
> 
> Création du fichier core :
> 
> jdpillon@devel:~$ gcore 20157
> 0x001ad422 in __kernel_vsyscall ()
> Saved corefile core.20157
> jdpillon@devel:~$
> 
> Le fichier core.20157 contient le code source du fichier test.sh. En
> utilisant grep, sed, ou autre il doit être possible de ne récupérer que
> le code source au milieu de ce fichier binaire.
> 
> Le fait d'utiliser gcore n'affecte en rien le processus.
> 
> Cordialement
> 
> --
> Jacques-Daniel PILLON
> 

Je viens d'essayer, mais malheureusement le code source est complètement
noyé dans un tas de donnés binaires qu'il est difficile de filtrer (ça
contient également le contenu des variables... et comme le script est un
serveur d'encodage vidéo, c'est un sacré foutoir).

Je crois que j'aurais plus vite fait de réécrire ce que j'avais modifié
dans le script, je me vois mal m'amuser avec des expressions régulières
pour extraire ça.

Merci quand même.

Ha sinon, une question HS tant que je peux la poser. J'ai lu dans une
documentation sur bash que ce langage était déconseillé pour développer
des applications de type daemon ou serveur, mais sans expliquer
pourquoi. Le bash est pourtant très robuste et permet d'éviter bon
nombre de bug que l'on pourrait avoir avec un langage compilé, est-ce
que quelqu'un saurait pourquoi cette recommandation ?



Reply to: