====== 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 [[http://it.wikipedia.org/wiki/Bash|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 1((nessun processo Xtightvnc presente)).\\ 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