Gambas France BETA


Pas de compte ? Incription

arreter un programme gambas et le relancer...

Ce sujet est résolu.

1
AuteurMessages
spheris#1 Posté le 11/10/2014 à 23:31:35
Bonsoir,
Le sujet a déja été traité mais je ne le retrouve pas.
Comment arreter un programme en gambas 3 et le relancer.

si je fais :

1
2
3
EXEC["killall","gbr3"]
WAIT 2
EXEC["./toto.gambas"]


cela ne fait que tuer le process GB3 et ne relance pas mon soft.
Une idée ?
vuott#2 Posté le 12/10/2014 à 00:11:18
Ne cedere ineluctabili possimusExcuse me,

does program A have to kill program B, and then it have to run again the program B ?
« Vita non suavis esse potest, nec Mors amara. »
didier18#3 Posté le 12/10/2014 à 09:30:16
Bonjour spheris

Heu... et si tu démarres simultanément les programmes A et B, qu'avant de l’arrêt de A tu passes toutes les variables nécessaire à B et que tu kill A. Est-ce que ça pourrai fonctionner ... ?
vuott#4 Posté le 12/10/2014 à 14:58:15
Ne cedere ineluctabili possimusWell,
you can find process number of the program B and then work on that.

...by using the C external funcion kill()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
PRIVATE CONST SIGKILL AS INTEGER = 9
PRIVATE EXTERN kill_C(pid AS INTEGER, signal AS INTEGER) AS INTEGER IN "libc:6" EXEC "kill"

PUBLIC SUB Main()

DIM s, d, t AS STRING

t = "my_program.gambas"

FOR EACH s IN Dir("/proc", NULL, gb.Directory)
IF Exist("/proc" &/ s &/ "cmdline") THEN
d = File.Load("/proc" &/ s &/ "cmdline")
IF d LIKE "*" & t & "\x00" THEN kill_C(Val(s), SIGKILL)
ENDIF
NEXT

WAIT 2

SHELL "/path/of/my_program.gambas"

QUIT

END



or by using command bash kill:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
PUBLIC SUB Main()

DIM s, d, t AS STRING

t = "my_program.gambas"

FOR EACH s IN Dir("/proc", NULL, gb.Directory)
IF Exist("/proc" &/ s &/ "cmdline") THEN
d = File.Load("/proc" &/ s &/ "cmdline")
IF d LIKE "*" & t & "\x00" THEN SHELL "kill " & s
ENDIF
NEXT

WAIT 2

SHELL "/path/of/my_program.gambas"

QUIT

END
« Vita non suavis esse potest, nec Mors amara. »
spheris#5 Posté le 12/10/2014 à 17:50:27
vuott,
Thank for your answer but this solution doesn't work for my application.
I need just one instance of this program, because i drive an electronic board.
Thank you for your answer.

Remark :
when i launch a gambas file, i don't have toto.gambas in my list of services (top) but i have gbr3.
Is it normal ?

vuott
Merci pour ta réponse mais cette solution ne fonctionne pas pour mon application.
J'ai juste besoin de lancer une seule instance de ce mon programme car il pilote une carte électronique.

remarque :
Quand je lance une application gambas 3 du style toto.gambas, je n'ai pas cette apli dans la liste des taches en cours d'utilisation (top) mais j'ai l'appli gbr3.
Est-ce normal ?

;)
Reivillo#6 Posté le 12/10/2014 à 19:24:17
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »Bonsoir @ Toutes & Tous.

Moi j'ai ceci:
Si on Relance l'Application, celle-ci Ferme la Précédente...
À NOTER: NE PAS OUBLIER DE FERMER L'IDE! pour Tester.
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
30
' Gambas class file

PUBLIC $sPATHTMP AS STRING = User.Home & "/ID"
PUBLIC $aLINEID AS NEW STRING[16]

PUBLIC SUB Form_Open()

DIM $sTMP, out AS STRING

IF Exist($sPATHTMP) THEN
SHELL "kill " & File.Load($sPATHTMP)
ENDIF

SHELL "ps aux " TO $sTMP
File.Save($sPATHTMP, $sTMP)
SHELL "grep " & Application.path & " " & $sPATHTMP TO $sTMP
$aLINEID = Split($sTMP, " ", "", TRUE)
File.Save($sPATHTMP, $aLINEID[1])

END


'Mettre le CODE de l'Application Principale ICI.


PUBLIC SUB Form_Close()

KILL $sPATHTMP

END
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
Reivillo#7 Posté le 13/10/2014 à 03:13:05
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »La même chose, mais en Plus Gambasien...
Si ce n'est pas cela que tu cherches, Merci de me le faire savoir.
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
PUBLIC $sPATHALL AS STRING = Application.path & "/" & Application.name & ".gambas"
PUBLIC $sPATHTMP AS STRING = User.Home & "/" & Application.Name

PUBLIC SUB Form_Open()

IF Exist($sPATHTMP) THEN
SHELL "kill " & File.Load($sPATHTMP) WAIT
ENDIF

File.Save($sPATHTMP, Application.Id)
TextBox1.Text = "Application.Id: " & Application.Id 'Pour Test

END


'Mettre le CODE de l'Application Principale ICI.


PUBLIC SUB Form_Close()

KILL $sPATHTMP

END

PUBLIC SUB Button1_Click() ' Pour Test

EXEC [$sPATHALL]' Remplace tes 3 lignes

END
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
linuxos#8 Posté le 13/10/2014 à 03:53:09
Un peu de sel, de poivre et la crevette sera... Spheris,

Une question se pose a moi. Pourquoi dois tu redémarrer ton programme Gambas ?

Est ce suite a un bug, un dysfonctionnement, un redémarrage après une mise a jour ?

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
Reivillo#9 Posté le 13/10/2014 à 18:35:33
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »C'est plutôt ceci que tu cherches. Non?
Merci de faire un retour, ou marqué ton sujet en Résolu
Puis, peut-être, nous proposer ta Solution!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PUBLIC $sPATHALL AS STRING = Application.path & "/" & Application.name & ".gambas"

PUBLIC SUB Form_Open()

WAIT 2
TextBox1.Text = "Application.Id: " & Application.Id ' Pour Test

END

PUBLIC SUB Button1_Click() ' Pour Test

DIM $iID AS INTEGER = Application.id

EXEC [$sPATHALL]
SHELL "kill " & $iID

END
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
spheris#10 Posté le 14/10/2014 à 08:05:01
Linuxos,

En fait je reçois une chaine de caracteres par un flux série RS232 par un port émulé en USB.
De temps en temps, cette chaine ne me parvient pas dans son entier. bug de l'interface USB/RS232 probablement.
Le fait de redémarrer le programme rétablie la communication.

Reivillo,
Je teste cela et te tiens au courant.
Merci pour l'info.
;)
spheris#11 Posté le 14/10/2014 à 08:08:28
Reivillo,
Après tests, c'est bien cela que je cherchais.
Merci encore.
;)
Reivillo#12 Posté le 14/10/2014 à 15:57:32
C' est ici, et nul part ailleurs. « Et pis c'est tout ! »@ sheris.

Merci pour ton retour.

Enfin de compte, c'est un Redémarrage Automatique que tu recherchais...
J'avais tester avec Me.handle et Me.Id, mais l'Identificateur retourné n'était pas valide pour le killer.
Vu que l'on veut Ferme l'Application, et Non la Fenêtre.
Donc j'ai fait une Recherche générale dans la Doc,
qui m'a Retourner Application.Id en t'autres, qui convenait parfaitement.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015)
LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr .
Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous...
sudo add-apt-repository ppa:gambas-team/gambas3
sudo apt-get update
sudo apt-get install gambas3 -y
Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016)
Pour la Doc, c'est vers là: Documentation Gambas3 FR
1