Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    5

    [JAVA]Processi che si monitorano a vicenda

    Ciao a tutti, vorrei creare due processi che si controllano a vicenda...per essere più precisi ognuno dei processi dovrebbe rilevare la chiusura dell'altro e quando questa venisse rilevata, riavviarlo. Ho fatto qualche prova usando la classe Runtime ma non riesco a capire come iplementare correttamente questa situazione...
    Grazie a tutti!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Java ha un forum dedicato.
    Posta il codice che hai scritto e gli errori/comportamenti inaspettati che ottieni.
    Dai anche un'occhiata al Regolamento interno, per conoscere le norme di partecipazione (titoli, contenuti, posting del codice e quant'altro).


    Sposto nel forum Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    5
    Mi scuso ancora per l'errore!
    Ho provato a usare il metodo Runtime.exec(command) per avviare un processo esterno e controllarne la chiusura con il metodo waitFor(), ma non riesco a capire come controllare il primo...mi spiego meglio...

    Processo1
    |
    |
    waitFor()-->Processo2

    Processo2
    |
    |
    waitFor()-->Processo1

    E avevo pensato di inserire il controllo su un thread separato su ogni processo

    Processo1--Thread-> waitFor()-->Processo2
    |
    |
    execution

    Processo2--Thread-->waitFor()Processo1
    |
    |
    execution

    Ho fatto qualche prova ma non sono riuscito a capire come "far conoscere" al processo1 il 2 e viceversa...non ho postato il codice perchè non so come creare una situazione di questo tipo...spero di non essere stato troppo "confuso" nella descrizione e che qualcuno sappia darmi qualche dritta...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Azzemir
    Ho fatto qualche prova ma non sono riuscito a capire come "far conoscere" al processo1 il 2 e viceversa...
    Beh ma cosa intendi per "far conoscere"??
    Quando lanci un processo con la exec() quello che ottieni e hai "in mano" è quell'oggetto Process. È tutto lì, è questa la "visione" del processo lanciato che si ha.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    5
    Mi accorgo che in effetti potrei non essermi spiegato bene...pongo il problema in maniera più specifica magari...prendendo in considerazione un processo e volendone rilevare la chiusura ad esempio da task manager sotto windows, il solo metodo che mi sembra funzionare è quello di ottenere un' istanza del processo (ottenuta mandandolo in esecuzione tramite Runtime.exec) e di invocare il metodo waitFor().
    Ma volendo rilevare la chiusura del processo corrente cioè non mandato in esecuzione mediante Runtime.exec come faccio?è possibile?o magari esiste un metodo che non utilizza la classe Process?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    5
    Originariamente inviato da andbin
    Quando lanci un processo con la exec() quello che ottieni e hai "in mano" è quell'oggetto Process. È tutto lì, è questa la "visione" del processo lanciato che si ha.
    Si fin qui ci sono. Se io lancio il processo2 mediante la exec() posso invocare waitFor() sull'oggetto Process che la exec() mi ritorna e dunque avere informazioni al momento della chiusura del processo2 (ad esempio se viene terminato da taskManager waitFor() ritorna 1 di solito). Il mio problema è che vorrei fare lo stesso anche al contrario, cioè invocare dal processo2 (avviato dalla exec() presente all'interno del p1) waitFor() sul processo1, e riavviarlo se questo dovesse terminare.
    Cioè io dal processo2 non posso ottenere l'oggetto Process relativo al processo1 perchè non lo eseguo tramite la exec() dunque non posso invocare waitFor().
    Giusto?C'è un altro modo di implementare questa situazione?
    Grazie..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.