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