Salve.
Esiste in java un sistema per gestire le chiamate di sistema come avviare un processo e stopparlo?
ipotizzanto che il comando da shell sia
#motion
come posso invocare questo processo?
Salve.
Esiste in java un sistema per gestire le chiamate di sistema come avviare un processo e stopparlo?
ipotizzanto che il comando da shell sia
#motion
come posso invocare questo processo?
"Non esiste" in Java nulla di simile. Poichè Java deve rimanere indipendente dal Sistema su cui gira non può inventarsi una chiamata di sistema.
Ho messo le virgolette perchè è comunque sempre possibile avviare un programma (processo) tramite la chiamata al metodo exec() della classe Runtime. Tramite questo è possibile, ad esempio sotto Windows, invocare il comando "dir" nel seguente modo:
Allo stesso modo, un "ls" su Linux in questo modo:codice:String[] comando = {"cmd.exe", "/c", "dir"}; Runtime.getRuntime().exec( comando );
Ciao.codice:String[] comando = {"/bin/bash", "-c", "ls"}; Runtime.getRuntime().exec( comando );![]()
"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
forse qui trovi una risposta...
![]()
stex1984
Lele esiste anche qualcosa per chiudere il programma?
Nel mio caso è un programma che va in backgroun quindi l'unico modo per bloccarne l'esecuzione forse è un kill. Grazie per aver riportato la soluzione linux:-)
Adesso mi adopero a leggere l'altra soluzione!
Perfetta anche la seconda soluzione. Se non conosco il comando per stoppare il processo, posso comunque stopparlo?
Mi sa di no . . .
La soluzione del kill è senza dubbio funzionante (a patto di conoscerne il PID).
Una soluzione alternativa (mai provata, però) è quella di utilizzare il metodo destroy() della classe Process.
L'oggetto Process è quello che viene restituito dal metodo exec() di Runtime:
Stando alle API:codice:Process p = Runtime.getRuntime().exec( comando ); ... p.destroy();
Ciao.destroy(): Kills the subprocess.![]()
"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
A parte il fatto che il link non porta a nulla...Originariamente inviato da pierets
per info venite qui--> AIUTO
1) Usare del testi più esplicativi, sarebbe preferibile, a mio avviso
2) Ha a che fare con quello di cui si parla nella discussione? Dal nome direi proprio di no.
3) Se la supposizione di cui al punto 2 è confermata... il moderatore non tarderà a farsi sentire.
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
Forse lele hai sbagliato forum!
Cmq ho risolto intervenendo con kill -9 PID. Il PID lo ricavo elaborando l'output di ps -aux.
Non avevo sbagliato forum... ho informato il moderatore che probabilmente ha rimosso il postOriginariamente inviato da PinoAntonino
Forse lele hai sbagliato forum!
Cmq ho risolto intervenendo con kill -9 PID. Il PID lo ricavo elaborando l'output di ps -aux.(nota: c'è un quote)
Infatti, conoscendo il PID, la via più breve è senz'altro il kill -9. Anch'io a suo tempo avevo adottato questa soluzione: lanciavo uno script (perchè la cosa era un po' più complessa) e prendevo a killare tutti i processi che venivano infilati in un file...
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
Io prendo il PID in modo dinamico in quanto nn è sempre lo stesso.
ps -aux lo metto in un file e lo scorro. cerco il nome del pprogramma e carico il PID.
Ciao a risentirci