Linux Shell Scripts – parte II

lunedì 21 dicembre 2009 alle 21:03 | Pubblicato su Linux | Lascia un commento
Tag:

Eseguire comandi in background: Screen

Per eseguire comandi o script in background o comunque in modo tale che l’esecuzione dei tali comandi non venga interrrotta a causa di problemi di connessione fra me e la macchina su cui devo eseguire il programma, ho sempre utilizzato due approcci: VNC o prima ancora il comando nohup con il comando “&”. Questo naturalmente nel caso di programmi di durata relativamente lunga. Ad esempio per lanciare manualmente  uno script di backup del database ho spesso utilizzato la seguente sintassi:

[oracle@urano ~]$ nohup ~/scripts/orabackup10gR2.sh &

In altri casi soprattutto in tempi più recenti e per l’esecuzione manuale di script sql da sqlplus ho utilizzato VNC, ovvero mi collego alla macchina remota via VNC (magari un giorno spiego meglio come mi piace utilizzare/configurare VNC sulle mie macchine) da li ho accesso al desktop grafico, apro un terminale e da li sqlplus, lancio lo script e chiudo VNC, la sessione rimane li, come chiudere RDP di Windows con la “X”  senza sloggarsi.

Tempo fa però ho scoperto un programmino solitamente installato su linux che si chiama screen (ho messo il primo link che ho trovato con una ricerca su google, mi sembra interessante) una spece di window manager per console non grafica.  Un programmino relativamente semplice ma molto ben fatto direi.

Lanciando il comando senza parametri viene creata una sorta di console virtuale, uscendo chiudendo putty con la x o con la combinazione di tasti “Ctrl-a Ctrl-d” ci si “stacca” dalla console, lasciandola li; quindi se prima di staccarsi si è lanciato in esecuzione un comando questo rimane li in esecuzione, si ritorna alla console di partenza con il messaggio “[detached]”. A questo punto anche se ci si connette con un’altra sessioni è possibile esaminare l’elenco delle sessioni “screen” aperte, ad esempio:

[oracle@urano ~]$ screen -ls
There are screens on:
18263.pts-6.urano       (Attached)
18529.pts-7.urano       (Detached)
2 Sockets in /var/run/screen/S-oracle.

E ci si può “riattaccare” alla sessione con il con il comando screen -r [[pid.]tty[.host]],  ad esempio:

screen -r pts-7

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: