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:

 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
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.

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.

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