Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[TIP] Screen: mettere i processi in background
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
fat_penguin
Apprentice
Apprentice


Joined: 25 Jul 2004
Posts: 294
Location: sud side of Switzerland

PostPosted: Sat Dec 11, 2004 3:49 pm    Post subject: [TIP] Screen: mettere i processi in background Reply with quote

Spesso mi capita di dover lanciare dei lunghi processi su macchine remote. Se mi collego con ssh e lancio il programma con "&" , al momento della chiusura della sessione ssh, il pocesso si interrompe.

Ho quindi iniziato ad usare screen che permette di mettere in background i processi, di chiudere la sessione terminale attuale e di riprenderla successivamente.

Ecco il dafarsi (sulla macchina remota):
Code:
emerge screen


Ora per lanciare un qualsiasi processo si segue la sintassi:
Code:
screen nomeprocesso

ad esempio
Code:
screen emerge -u world


Il processo quindi inizia! Se ora lo voglio mettere in backgound devo semplicemente dare la sequeza di tasti
Code:
ctrl+a (successivamente) d


Ora il processo risulta nascosto. Possiamo vedere lo stato con
Code:
screen -ls


A questo punto possiamo tranquillamente chiudere la sessione terminale (ssh o semplicemente la nostra shell locale).

Riaprendo una sessione possiamo con
Code:
screen -r
ritrovarci il processo in piena attività!
Se abbiamo messo piu processi in background dobbiamo richiamrli in base al pid assegnato da screen ( screen -ls) con
Code:
screen -r numero_pid


Nel man di "screen" si possono scoprire diverse cose interessanti!

Una nota: quando si lancia un processo con screen vale forse la pena di redirezionare lo standard output in modo che se il processo termina prima del "riaggancio" si possono visualizzare eventuali messaggi o errori del processo stesso. L'opzione da usare in questo caso è "-L".

byebye
fat_penguin
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 30888
Location: here

PostPosted: Sat Dec 11, 2004 3:54 pm    Post subject: Reply with quote

Ottimo tip sara' messo nei post utilissimi. Se ne parlava da molto ma mancava una guida
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
ProT-0-TypE
Veteran
Veteran


Joined: 20 Dec 2003
Posts: 1624
Location: Cagliari

PostPosted: Sat Dec 11, 2004 4:00 pm    Post subject: Reply with quote

io creo le sessione di screen con:
Code:
screen -S nomesessione


in modo che sia più comodo riaprire le sezioni staccate ricordandosi il nome.
Per riaprire do semplicemente un:
Code:
screen -r nomesessione


Last edited by ProT-0-TypE on Sun Oct 09, 2005 10:37 am; edited 1 time in total
Back to top
View user's profile Send private message
wildancer
Guru
Guru


Joined: 02 Apr 2004
Posts: 472

PostPosted: Mon Jun 06, 2005 11:05 pm    Post subject: Reply with quote

MH, ma non bastava l'onnipresente nohup? se ridirezioni l'output poi puoi leggerlo con tail -f... screen cosa offre in piu?
Code:
# nohup emerge -uD world >& emerge.log

e se ti logghi e ps aux | grep emerge ti dice che ancora non hai finto per avere l'output
Code:
# tail -f emerge.log
Back to top
View user's profile Send private message
soigres
l33t
l33t


Joined: 09 Dec 2004
Posts: 648
Location: Milano, Italy

PostPosted: Sun Oct 09, 2005 12:25 pm    Post subject: Reply with quote

posto qui perchè il mio thread è stato chiuso...
scusate, con tutte le shell che esistono non ho mai sentito parlare di qyesto "screen"... possibile che nessuna delle shell storiche di unix consenta di lanciare processi in background senza che vengano killati insieme al processo padre (la shell appunto)...
Back to top
View user's profile Send private message
lopio
Veteran
Veteran


Joined: 22 Dec 2003
Posts: 1161
Location: savona, Italy

PostPosted: Sun Oct 09, 2005 12:35 pm    Post subject: Reply with quote

soigres wrote:
posto qui perchè il mio thread è stato chiuso...

scusate, con tutte le shell che esistono non ho mai sentito parlare di qyesto "screen"... possibile che nessuna delle shell storiche di unix consenta di lanciare processi in background senza che vengano killati insieme al processo padre (la shell appunto)...
h
come si diceva sopra il comando nohup consente di sganciare padre e figlio e poter avviare un processo da macchina remota (per esempio via telnet) e chiudere la connessione senza che cio' che si e' lanciato venga terminato.
Una ulteriore considerazione potrebbe essere quella di far catturare e ignorare i segnali che un processo riceve tramite comando trap.
Se la shell padre per esempio invia segnale X al figlio che non catturandolo viene ucciso allora conviene dire al figlio di catturare ed ignorare tale SIG tramite comando trap per il segnale X inserito in testa al file.
Back to top
View user's profile Send private message
soigres
l33t
l33t


Joined: 09 Dec 2004
Posts: 648
Location: Milano, Italy

PostPosted: Sun Oct 09, 2005 12:45 pm    Post subject: Reply with quote

in altro thread (chiusomi!) cercavo un'alternativa a bash (un'altra shell, non un comando palliativo) e chiedevo se qualcuna delle altre shell che esistono (non vorrei provarle tutte per saperlo :lol: ) fa questo di default... per esempio zsh o tutte le varie sh di unix
grazie
Back to top
View user's profile Send private message
wildancer
Guru
Guru


Joined: 02 Apr 2004
Posts: 472

PostPosted: Sun Oct 09, 2005 5:06 pm    Post subject: Reply with quote

Se ci spiechi cosa cerchi magari ti aiutiamo, fammi capire però, dato che qui è ot la scelta di una shell differente, perche il tuo 3d è stato chiuso? In linea di massima comunque sappi che tutt le caratteristiche di altre shell bash le ha, l'unico motivo per cambiarla è che non ne usi nessuna
(tipo che per ripetere un comando anche se l'hai digitato 2 comandi prima, fai
Code:
# history

e poi
Code:
# !hid

)
e che ne vuoi una più leggera, a quel punto c'è ash!
Back to top
View user's profile Send private message
GiRa
l33t
l33t


Joined: 07 Apr 2005
Posts: 717

PostPosted: Sun Oct 09, 2005 5:18 pm    Post subject: Reply with quote

Forse nohup è un comando interno di bash.

Code:
$man nohup
Back to top
View user's profile Send private message
soigres
l33t
l33t


Joined: 09 Dec 2004
Posts: 648
Location: Milano, Italy

PostPosted: Sun Oct 09, 2005 11:00 pm    Post subject: Reply with quote

:lol: scusate, so di essere un casinista percui mi spiegherò di nuovo: sto cercando, se esiste, una shell che, una volta chiusa (in un window manager per esempio), non vengano chiusi insieme a lei anche tutti i processi che sono stati aperti tramite una sessione di questa shell.
es. sono in fvwm, con aterm aperto e shell bash... digito "opera" poi chiuso aterm... allo stato attuale mi si chiuderebbe anche la finestra di opera... sto cercando una shell che non causi questi inconvenienti

ps. non sono sicuro che sia un problema della shell quindi cazziatemi pure se sto dicendo castronerie!! :lol:
Back to top
View user's profile Send private message
skakz
Guru
Guru


Joined: 03 Jul 2004
Posts: 380
Location: Ischia/Napoli/Italia/Terra

PostPosted: Sun Oct 09, 2005 11:06 pm    Post subject: Reply with quote

soigres wrote:
:lol: scusate, so di essere un casinista percui mi spiegherò di nuovo: sto cercando, se esiste, una shell che, una volta chiusa (in un window manager per esempio), non vengano chiusi insieme a lei anche tutti i processi che sono stati aperti tramite una sessione di questa shell.
es. sono in fvwm, con aterm aperto e shell bash... digito "opera" poi chiuso aterm... allo stato attuale mi si chiuderebbe anche la finestra di opera... sto cercando una shell che non causi questi inconvenienti

ps. non sono sicuro che sia un problema della shell quindi cazziatemi pure se sto dicendo castronerie!! :lol:



prova con
Code:
nohup opera &

_________________
Linux Registered User n.340423
Linux User Group Ischia
www.tush.it
Back to top
View user's profile Send private message
ProT-0-TypE
Veteran
Veteran


Joined: 20 Dec 2003
Posts: 1624
Location: Cagliari

PostPosted: Sun Oct 09, 2005 11:14 pm    Post subject: Reply with quote

questo thread è entrato in loop

nohup -> shell particolare -> nohup -> shell particolare -> nohup... :lol:
_________________
[Vuoi guadagnare navigando?]
Back to top
View user's profile Send private message
soigres
l33t
l33t


Joined: 09 Dec 2004
Posts: 648
Location: Milano, Italy

PostPosted: Sun Oct 09, 2005 11:15 pm    Post subject: Reply with quote

ProT-0-TypE wrote:
questo thread è entrato in loop

nohup -> shell particolare -> nohup -> shell particolare -> nohup... :lol:
esatto, ma nessuno mi risponde ancora: tra zsh, csh, tcsh, ecc ecc esiste una che faccia quanto descritto sopra senza uso di comandi come "nohup"???? :?:
Back to top
View user's profile Send private message
neon
l33t
l33t


Joined: 04 Aug 2003
Posts: 759
Location: Catania, Italy, Europe

PostPosted: Sun Oct 09, 2005 11:39 pm    Post subject: Reply with quote

soigres wrote:
ma nessuno mi risponde ancora: tra zsh, csh, tcsh, ecc ecc esiste una che faccia quanto descritto sopra senza uso di comandi come "nohup"???? :?:

Non credo sia un comportamento "normale" per una shell e' per questo che si usa nohup (che e' un comando posix e non interno a bash)

edit: effettivamente ho detto una ca**a*a =) pare che la csh si comporti diversamente...
http://www.univ.trieste.it/~nircdc/doc/oldunix/DUpro.12.4.html

edit2: fammi indovinare questo sbattimento e' per la vilitudine di non specificare nohup prima di avviare i programmi??? hai pensato ad un alias?
_________________
Io credo che le tecnologie siano moralmente neutrali fino a quando non le utilizziamo - William Gibson

LINEE GUIDA DEL FORUM
Back to top
View user's profile Send private message
soigres
l33t
l33t


Joined: 09 Dec 2004
Posts: 648
Location: Milano, Italy

PostPosted: Sun Oct 09, 2005 11:59 pm    Post subject: Reply with quote

neon wrote:
soigres wrote:
ma nessuno mi risponde ancora: tra zsh, csh, tcsh, ecc ecc esiste una che faccia quanto descritto sopra senza uso di comandi come "nohup"???? :?:

Non credo sia un comportamento "normale" per una shell e' per questo che si usa nohup (che e' un comando posix e non interno a bash)

edit: effettivamente ho detto una ca**a*a =) pare che la csh si comporti diversamente...
http://www.univ.trieste.it/~nircdc/doc/oldunix/DUpro.12.4.html

edit2: fammi indovinare questo sbattimento e' per la vilitudine di non specificare nohup prima di avviare i programmi??? hai pensato ad un alias?
mitico!!! :!: adesso però devi spiegarmi come si fa a fare un alias che faccia partire tutti i processi con "nohup" prima (oppure intendi fare un alias per ciascun programma lanciato da terminale???)
Back to top
View user's profile Send private message
neon
l33t
l33t


Joined: 04 Aug 2003
Posts: 759
Location: Catania, Italy, Europe

PostPosted: Mon Oct 10, 2005 12:12 am    Post subject: Reply with quote

effettivamente non si puo' creare un alias per ogni programma, bisognerebbe modificare l'input preso da bash prima che venga eseguito, come fare di preciso non saprei...
Di utile ho scoperto il comando "disown -h" di bash, mi resta solo da capire come settare in disown di default per tutti i programmi eseguiti da bash :) (ci siamo quasi)

edit:
Code:
huponexit
    If set, Bash will send SIGHUP to all jobs when an interactive
    login shell exits.


shopt huponexit: nella mia bash e' off di default... ma manda il SIGHUP lo stesso. :(

edit2: allora... per ora ho trovato la seguente soluzione: metti
Code:
PROMPT_COMMAND='disown -ah'
in .bashrc ed esegui i programmi con nome&, meglio di niente...
_________________
Io credo che le tecnologie siano moralmente neutrali fino a quando non le utilizziamo - William Gibson

LINEE GUIDA DEL FORUM
Back to top
View user's profile Send private message
soigres
l33t
l33t


Joined: 09 Dec 2004
Posts: 648
Location: Milano, Italy

PostPosted: Mon Oct 10, 2005 7:22 am    Post subject: Reply with quote

ok... buona soluzione!
altrimenti mi sa che proverò la shell tcsh!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum