Bonjour,

je cherche à réaliser une application console lazarus qui écoute un serveur.
de temps en temps, le serveur va dire à l’application de se mettre à jour.
dans ce cas elle exécute un script qui télécharge la nouvelle version, décompresse/remplace l’exécutable et relance l'application.

Je n'arrive pas à relancer l'application. si je lance une autre application à la place cela fonctionne.
Si je lance le script de MAJ directement dans la console, je n'ai pas le problème, il exécute la MAJ et relance sans problème l'application.

En fait dire que je n'arrive pas à relancer n'est pas exact.
J'arrive à relancer l'application, à obtenir un PID, mais au bout d'une fraction de seconde, même pas de quoi sortir du create de l'objet principal de lazarus, l'application est tuée.

Par qui, pourquoi, je n'arrive pas à l’expliquer.
Quelqu'un a-t-il rencontré ce type de problème ? Avez-vous une idée de pourquoi cela ne fonctionne pas?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
#!/bin/bash
 
filename=$(basename $1);
ppid=$2
 
#suppression fichier si il existe
rm "./packages/$filename"
 
#tentative arrêt si pas arrêté
if [ "$ppid" != " " ]; then
	nohup kill -9 $ppidcp &
	sleep 2
fi
 
#Téléchargement du package
wget -O ./packages/$filename $1 
 
#Décompression du package
cd packages
tar xvf $filename
rm $filename
mv -f * ../
sleep 5
cd ..
 
#Redémarrage
./mon_application
exit 0