vncserver: lanciamo una sessione soltanto

Se si desidera generare un comando vncserver da inserire in un'icona apposita, che impedisca all'utente di lanciare più di una istanza del programma, si può procedere coma segue:

  • 1 Verificare se il processo vncserver è attivo sulla macchina, utilizzando il comando ps
 cloc3@s939 ~ $ ps
  PID TTY          TIME CMD
 3670 pts/1    00:00:00 sh
 4194 pts/1    00:00:00 Xtightvnc
 4198 pts/1    00:00:00 xstartup
 4201 pts/1    00:00:00 x-session-manag
 4229 pts/1    00:00:00 dbus-launch
 4256 pts/1    00:00:00 ksplash
 4274 pts/1    00:00:00 kwrapper
 4285 pts/1    00:00:00 ps
  • 2 Selezionare il solo processo Xtightvnc
cloc3@s939 ~ $ ps|grep Xtightvnc
 4194 pts/1    00:00:01 Xtightvnc

Osservate la barra verticale. Si chiama pipe e serve a trasferire l'ouput del comando ps nell'input del comando grep.
È uno strumento fondamentale di bash.

  • 3 Eliminare l'ouput verso terminale, imparando ad usare l'informazione logica restituita dal comando grep
cloc3@s939 ~ $ ps|grep Xtightvnc -q
cloc3@s939 ~ $ echo $?

La variabile $? contiene 0, perché il comando grep è uscito positivamente, restituendo almeno una riga.
Se Xtightvnc fosse stato spento, $? avrebbe restituito un valore 1.

  • 4 Creare un comando esclusivo: vncserver deve essere lanciato solo se grep restituisce valore 11).

In bash è possibile ottenere questo in un riga soltanto:

ps|grep Xtightvnc -q||vncserver

Create la vostra icona e non dimenticate di collocare una copia nella cartella /home/icone :-)

Nota. se desiderate evitare la presenza di istanze di vncserver lanciate da un utente che via ha preceduto (senza spegnere la macchina) dovete aggiungere un controllo:

ps aux|grep -v grep|grep Xtightvnc -q||vncserver
1) nessun processo Xtightvnc presente
bash/un_esempio_istruttivo.txt · Ultima modifica: 2011/09/22 19:11 (modifica esterna)
 
Ad eccezione da dove è diversamente indicato, il contenuto di questo wiki è soggetto alla seguente licenza: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki sintassi italiana dokuwiki