Newsgroup: it.comp.os.linux.iniziare
Titolo: Comandare processi in background

ciao
vi pongo un quesito..
come faccio a mandare comandi e a farli eseguire
ad un programma che gira in background?
esempio ho un programmino tipo ftp per eseguirlo do in comando
mio_ftp &
esso assumera' un PID tipo 3500
ora che il mio processo e' in background vorrei comunicargli
di connettersi all'host tipo 192.168.100.100
oppure conoscere lo stato della connessione ecc
come fare?
e' possibile?

Nel fausto dì di Sat, 02 Feb 2002 12:14:31 GMT, il prode _gico_
presente alla corte di _it.comp.os.linux.iniziare_
così ebbe l'ardire di pronunziarsi:
|ciao
|
|vi pongo un quesito..
|
|come faccio a mandare comandi e a farli eseguire
|ad un programma che gira in background?
[...]
  Dipende, ci sono molti modi diversi per farlo: mandandogli dei segnali (tipo
kill -SIGUSR1 nnnn), usando una pipe, una fifo, un socket ...  Tutti metodi
però che prevedono che il programma bersaglio sia stato appositamente
progettato per ricevere tali segnali, per leggere tali pipe/fifo, per accedere
ai socket ...  Tu come hai progettato il tuo programma?  In che linguaggio
l'hai scritto, è uno script?  Comunque, l'argomento è troppo vasto perché ti
dia una risposta completa, la tua è una domanda troppo generica e richiede non
una risposta, bensì una trattazione.  Ti serve un manuale sulla gestione dei
processi e sulla comunicazione tra processo e processo in Unix.
  Sandro
-- 
"In a world without walls and fences
you would not need windows and gates."
(Confucius)

 come fare?
Lo riporti in primo piano (fg) e dai il comando opportuno, poi lo risbatti
in background.
Ciao
  Andrea

gico wrote:

se non ho dimenticato proprio tutto puoi riportare un programma in 
foreground (o come cavolo si scrive) con 
$fg ID_Programma
dopo di che lo tratti come al solito e poi lo rimandi in background.
penso che tu possa mandargli i dati anche da altri programmi, magari 
attraverso i vari SIGNAL, ma ora proprio i miei ricordi sono annebiati 
totalmente.
Ciao.
-- 
Gollum1
***
Tesssoro... dov'é il mo tesssoro?

On Sun, 03 Feb 2002 22:39:15 GMT, Gollum1 <Gol...@NOSPAMlibero.it>
wrote:

Io credo di avere il suo stesso problema, quindi cerco di chiarire la
domanda:
Lancio nftp su un altro pc attraverso una connessione telnet, chiudo
la sessione telnet.
Quando riapro la connessione telnet nftp sta girando in background, se
voglio riportarlo in foreground per usare fg dovrei avere il num di
job, che non ho, nè il comando jobs me lo da.
Come faccio a vedere la schermata di nftp che mi sta scaricando i
files?
Bye Kashumi
Remove _XXX_ for mail reply

Nel fausto dì di Sat, 02 Mar 2002 23:13:47 +0100, il prode _Kashumi_
presente alla corte di _it.comp.os.linux.iniziare_
così ebbe l'ardire di pronunziarsi:
|Io credo di avere il suo stesso problema, quindi cerco di chiarire la
|domanda:
|Lancio nftp su un altro pc attraverso una connessione telnet, chiudo
|la sessione telnet.
|Quando riapro la connessione telnet nftp sta girando in background, se
|voglio riportarlo in foreground per usare fg dovrei avere il num di
|job, che non ho, nè il comando jobs me lo da.
  Te lo dà con l'opzione -l:
ambapali@obscuritas ~$ jobs -l
[1]+  6624 Stopped                 slrn
      ^^^^
  Altrimenti usi ps:
Sun, 3 Mar 2002  01:41:09  Exit status: 0 Jobs: 1 tty: 3
ambapali@obscuritas ~$ ps -l
  F S   UID   PID  PPID  C PRI  NI ADDR SZ  WCHAN TTY          TIME CMD
100 S  1000   283     1  0  69   0 -   545 1179a3 tty3     00:00:08 bash
000 T  1000  6624   283  0  60   0 -   518 108ef7 tty3     00:00:00 slrn
000 T  1000  6748  6624  0  61   0 -   632 108ef7 tty3     00:00:00 jed
000 R  1000  6765   283  0  70   0 -   594      - tty3     00:00:00 ps
|Come faccio a vedere la schermata di nftp che mi sta scaricando i
|files?
|
  Non credo sia però possibile portare in foreground un job mandato in
background da un processo genitore che è chiuso.  La tua shell di login adesso
avrà probabilmente una ID diversa e non sarà riconosciuta come la shell
genitrice del processo.  Inoltre, nftp è diventato un processo autonomo, e non
può essere portato in foreground neanche dalla shell genitrice, altrimenti
chiudere la shell genitrice del processo ne causerebbe la chiusura e non
troveresti più il processo attivo al login successivo.  Serve quindi la
gestione dei socket di nftp, oppure gli si mandano dei segnali con kill.  Non
so se nftp può scrivere nulla su dei pipe.


  Sandro
Che tradotto in parole semplici vuol dire che non posso recuperare la
schermata del programma....
azz
Questo è un bel casino...
In pratica io ho fatto 1 macchina per fare il mirror via ftp e per
scaricare da irc, senza monitor e tastiera che controllo in
remoto.....
un modo per far resuscitare le schermate dei processi tipo nftp e
bitchx lo devo trovare assolutamente
Se qualcuno ha 1 idea faccia 1 fischio pls
Grazie per il suggerimento sull'uso di jobs...mi era sfuggito...ora lo
provo.


Nel fausto dě di Sun, 03 Mar 2002 10:09:39 +0100, il prode _Kashumi_
presente alla corte di _it.comp.os.linux.iniziare_
cosě ebbe l'ardire di pronunziarsi:
|On 3 Mar 2002 00:53:49 GMT, 
amba...@libero.it
 (Alessandro Selli)
|wrote:
|Che tradotto in parole semplici vuol dire che non posso recuperare la
|schermata del programma....
  Eh sě, temo proprio di sě.  Non con un semplice fg.  Te ne rendi conto
facilmente facendo jobs -l una volta riloggato nella macchina dove gira nftp.
Il job nftp non c'č nella lista dei job sospesi, quindi non puoi fare fg
%numero_del_job.
|azz
|Questo č un bel casino...
|In pratica io ho fatto 1 macchina per fare il mirror via ftp e per
|scaricare da irc, senza monitor e tastiera che controllo in
|remoto.....
|un modo per far resuscitare le schermate dei processi tipo nftp e
|bitchx lo devo trovare assolutamente
|Se qualcuno ha 1 idea faccia 1 fischio pls
|
  Non č che non č piů possibile interagire con il programma in background,
perň c'č bisogno di un programma interfaccia che, da un lato presenta un menů
per l'utente, dall'altro controlla il processo sullo sfondo.  A saperlo fare č
semplice, la difficoltŕ principale consiste nel conoscere i canali di
comunicazione con l'applicativo.  Purtroppo in genere non č immediato avere
tali informazioni e trovare programmi di interfaccia con i processi di sfondo
pronti all'uso č questione di buona fortuna.
|Grazie per il suggerimento sull'uso di jobs...mi era sfuggito...ora lo
|provo.
|
  Quello che ti ho scritto su tutta la faccenda č quasi solo teoria.  Se
scopri qualche novitŕ o delle inesattezze in quello che ho scritto, fammelo
sapere, per favore.
|Bye Kashumi
|Remove _XXX_ for mail reply
  Ciao,
