QC Procedure: DFOS operations under VNC

home dfos administration documentation procedures concepts external: QC

This page describes how to use VNC within the DFOS dataflow for the automatic processes (and any others you want to), in particular autoDaily and trendPlotter, thus breaking the dependance (if any) of these processes on having your desktop PC/X-terminal up and running and logged in.

Mark Neeser introduced the QC group to VNC with a Weekly Meeting presentation which you can review here, or as a PDF.

How many VNCs can I have/do I want

In principle one can run an unlimited number of VNC instances on any workstation, each one providing a separate X environment, each one corresponding to a separate integer, 1, 2, 3, 76... I have had problems though with getting all possible numbers to work, but I don't know why...

However you probably really only want one VNC instance per instrumental account where autoDaily, smMonitor and perhaps other tasks requiring X and run regularly via cronjobs will work. You probably want to have separate VNC displays for your operational and your pre-Imaging accounts (check with Sabine for pre-Imaging specific issues).

Personally, I do ngasMonitor, and hence autoDaily on one display, and ALL other regular DFOS cron tasks in a 2nd display, just to be sure that any windows that are opened by tasks other than autoDaily do not open up on top of MIDAS displays being copied to PS for QC-reports.
Starting up VNC for the first time

For demonstration purposes I will use the example of VNC display 1 on dfo01, obviously you will want to change the values in the following commands according to your particular needs.

Best to start VNC manually when running for the first time. To do so:

vncserver :1 -depth 24 -geometry 1280x1024
vncpasswd
vncviewer dfo01:1 -Shared
vncserver -kill :1
            
Keeping it running: crontab setup

Assuming the uves.chkVNCserver script (see below) has been installed in $HOME/bin, add the following entry to your crontab:

*/5 *                   * * *  export TZ=Europe/Berlin; $HOME/bin/uves.chkVNCserver -N 1

This will check every 5 mins that VNC display :1 is running, and if not start it up. Of course if it is running then the script does nothing...

For multiple displays:

*/5 *                   * * *  export TZ=Europe/Berlin; $HOME/bin/uves.chkVNCserver -N 1 -N 2

etc... you can give as many -N <N> options as you like.

You should recieve an email whenever the VNC display(s) are started up.

You can also use this script to stop the VNC displays, e.g.:

uves.chkVNCserver -N 1 -N 2 --STOP

See the help for more info:

uves.chkVNCserver -h
X-configuration for VNC

By default, VNC will try to use the twm windowmanager (which almost certainly does not exist on your system, and which is awful anyway). By now though xfce should be installed on your system. To use it dowload this xstartup script into you ${HOME}/.vnc directory and make it executable.

chmod a+rx ${HOME}/.vnc/xstartup
            
Running DFOS tools in the VNC display

Almost nothing could be simpler... Just add export DISPLAY=dfo01:1 at the begining of each cronjob process you need to run in the VNC display, e.g.:

00 20 * * *   export DISPLAY=dfo01:1 ; $HOME/bin/dfosCron -t ngasMonitor > $HOME/crontabs/LOGS/dfosCron.ngasMonitor 2>&1

Be sure that you do not set the DISPLAY variable explicitly in any scripts that you run, or in any rc files (e.g. .qcrc, .dfoscrc or the .pecs files) that your scripts might run. Note that processAB, when run from Condor sources your .bashrc file and thus eventually sources you .pecs, .qcrc and .dfosrc files. In principal, I can not think of any reason why you would want to set the DISPLAY explicitly in any of your rc files.
Running stuff manually

Once the VNC server is running you can start a VNC viewer software from anywhere in the world (using VPN from outside ESO's firewall) to check on progress and/or run jobs manually.

On our ESO desktop PCs running Linux:

vncviewer dfo01:1 -Shared
            

Once the desktop appears you can work as on any X-terminal...

Mark's presentation (above) gives info on VNC clients for other platforms.
Required system software

  • VNC: (To my knowledge this is already installed on all dfo0x and dfo2x machines)
  • xfce: is part of ... so should be installed on all dfo2x machines, and I have created a ticket for installation on all dfo0x machines where it is not already present.
DFOS scripts
  • uves.chkVNCserver: Not yet a DFOS script, will be added to utilPack as soon as I re-write it in DFOS-standard formatting. For the time being download it and install it somewhere in the PATH of each account you wish to use it from. This script is intend to be run as a cronjob every 5mins (for example).