Newsgroup: it.comp.os.linux.iniziare
Titolo: lanciare programma senza terminale

Ciao a tutti, mio malgrado mi hanno affibiato la gestione di un server
linux.
quel server e' headless, e ogni tanto devo lanciare dei batch lunghissimi.
e' possibile collegarsi con ssh su quel server, lanciare un programma e
poi uscire dalla sessione ssh senza che quel programma venga terminato?
 
grazie
 
-- 
Be you!
www.shareyourproblems.org
 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 poi uscire dalla sessione ssh senza che quel programma venga terminato?
 
Dai un'occhiata a "nohup" e "disown".
 
bye,
 
-- 
 
piergiorgio

Piergiorgio Sartor ha sentenziato:

  Nohup a volte ha comportamenti non voluti (m'è capitato con script 
terminati e simili), mentre disown non lo conoscevo.
 
  Volendo è anche possibbile utilizzare at senza problemi.
 
-- 
Non pretendo che comprendiate il significato di quello che ho scritto senza 
averlo riletto un certo numero di volte. Personalmente, vi riterrei degli 
stupidi se lo faceste. Io l'ho letto sei volte ed ancora non l'ho capito.

   Volendo è anche possibbile utilizzare at senza problemi.
 
E` un po' diverso come "concetto", ma vale lo stesso.
 
bye,
 
-- 
 
piergiorgio

 poi uscire dalla sessione ssh senza che quel programma venga terminato?
 
In alternativa puoi anche provare tmux o screen che funziona da 
multiplex per i terminali, a differenza di nohup non separi il processo 
dal terminale ma puoi mandare tutto il terminale (con il processo 
dentro) in background e poi riagganciarti. La differenza fondamentale è 
che questo ti permette interattività (se ne hai bisogno), non mi pare 
che con nohup tu possa poi interagire di nuovo con il processo dal 
terminale corrente.

 Che problemi hai avuto con "nohup"?
 
  Uscendo dalla connessione, o cadendo la stessa lo script veniva terminato. 
Devo dire che principalmente m'è successo con solaris, ma non ho 
approfondito se fosse un bug noto o meno. Per la cronaca quando è capitato è 
stato abbastanza casuale e non era possibile prevedere se lo avrebbe 
terminato o meno.


 poi uscire dalla sessione ssh senza che quel programma venga terminato?
 
Vai di screen e sei a posto. Anche ubuntu usa screen quando fai un 
aggiornamento di release per evitare che crashi tutto (poi crasha lo stesso, 
ma per altri motivi).
 
1) collegati dove ti pare in ssh
2) lanciare il programma screen senza argomenti (ti verra' chiesto di 
premere space)
3) lancia i tuo mega script
4) CTRL+a rilascia e premi d
5) ora puoi terminare la sessione ssh
6) per vedere quanti screen sono attivi: screen -ls
7) per recuperare la sessione: screen -r numero_pid_che_hai_visto_con_ls
8) a questo punto se il tuo script e' terminato digita exit.
 
Nicola.
 
-- 
chi va pian va san e va lontan

Ho anche io un bisogno simile, e ravanando su internet ho trovato una
soluzione in apparenza semplice "nomeprogramma &".
 
pero' stamattina quando wget aveva finito di scaricare il manuale di php
ho visto che il processo non c'era piu' ma non mi aveva liberato la ram.
strano comportamento, provero' anche io le soluzioni che avete scritto.
 
-- 
------


 dalla sessione ssh senza che quel programma venga terminato?
 
$ screen
$ batch.sh
$ Ctrl+a d (detach)
$ screen -r (resume)
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
 
                          --------------------
           Vivi a lungo e prospera.
           		-- Spock, "Amok Time" (TOS), data astrale 3372.7

 soluzione in apparenza semplice "nomeprogramma &".
 
questo serve a lanciare un processo in background, se chiudi il
terminale quel processo lo gambizzi comunque.
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
 
                          --------------------
Un'altra caratteristica e' che i sedili galleggiano, cosicche' le compagnie
li possano ritrovare nel caso di un disastro aereo nell'oceano.
		-- Dave Barry