Daemon process



The driver utilises a background, or daemon process, to undertake a number of driver related functions.

When the daemon process is running, its icon will be seen in the macOS menu bar or Windows/Linux system tray:

 macOS Windows 
   

The UPDD installer implements start up methods for the daemon process based on the underlying operating system, such that it is loaded on system start.

OS Start up method 
Windows The updd installer launches UPDD Daemon at the completion of the installation.
Thereafter, upon a system start the program is auto run. This is actioned by a registry entry, e.g for a Win 10 system:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run\updd-daemon
Linux Immediately after UPDD install UPDD Daemon is launched using the command  '/opt/updd/upddenv /opt/updd/UPDD\ Daemon &' by the install script running as root.
Thereafter XDG Autostart or GDM startup is used to start the daemon at system start up (as defined in the Linux installation script)
MacOS UPDD Daemon is automatically launched as an always on per-user agent using launchd.

In some locked down touch systems it may be desirable to only run the driver process and not want or require having UPDD daemon launched at startup, in which case you will need to remove the daemon process from the start-up routine:

OS Daemon startup removal
Windows  Delete the registry entry HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run\updd-daemon
macOS  Run the command 'upddprocesses stop -a' 
sudo rm /Library/LaunchAgents/com.touch-base.updddaemon.plist
Linux Edit the file /opt/updd/updd_clients.sh if it exists and remove the line: /opt/updd/UPDD Daemon &
Edit the file /etc/gdm/Xsession if it exists and remove the line: /opt/updd/UPDD Daemon &
You will need to be “root” to edit either of these files.

In most cases, it is important that this process is running. If it is not running the UPDD Console will show this warning:

 

This can be suppressed with the global setting console.no_daemon_check for systems configured to not run UPDD Daemon.

The daemon process handles the following functions:

Daemon icons Shows the UPDD system tray / menu bar items
These icons, if enabled (note 1 below), are a visual indicator that the daemon process is running and shows if there are potentially issues with the touch interface. An exclamation mark in the icon indicates there is a problem. Hovering the cursor over the icon will reveal the reason the exclamation mark is being shown, either:

Notes

  1. The settings 'hide_systemtray_icon' and systemtray_icon_registration_only dictate if the icon is shown.  If defined, both must be 0 for the icon to be seen.
  2. Some Linux distributions will not show the icons in the notification area.  This being the case we have introduced command line options to invoke some of the daemon functions as described here.
Daemon menu
(Full list)

Register: Only shown for non-registered versions of the driver and allows for license registration.

Console: Invokes the UPDD Console program.

Identify: Used to associate a touchscreen with its host monitor in a multi-monitor environment.

Replug: Performs the equivalent of a hardware unplug/replug.

Test: Invokes the UPDD Test utility.
(only shown if Test utility available)

Annotate: Invokes the UPDD Annotate utility.
(only shown if Annotate utility available)

About: Indicates the UPDD driver version installed and shows license information.

Evaluation indicates this is an unregistered, evaluation version of the driver

Daemon menu
(Register only)
In some OEM cases, the Daemon menu is used only to offer license registration.  In this case, only the Register option is available.  
Once the registration has been activated, the Daemon icon will be removed.  This functionality is controlled by the setting systemtray_icon_registration_only.
Mouse interface Mac only - From Mountain Lion onwards the mouse interface only works for processes running under the logged in account. Given the driver process runs under the Root login, the interface code was moved to the daemon process.
Kext registration Mac only - From High Sierra onwards registers the Kext file (Kernel Extension) to ensure that it has been registered (which should happen at driver install time) or to get an error return code that indicates why it is failing to register which is placed in the UPDD setting private.kextload.status. The kext file informs the OS what USB devices are to be handled by our driver. If this does not load, then UPDD will not be selected by the OS to handle the touch device.
Right Click visualisation Draws right click visual feedback during count down when using Interactive Touch mode.
Monitor metrics changes Sets the initial monitor metrics layout and looks for changes in video resolution, rotation and monitor layout that may affect UPDD configuration and touch screen calibration. Rotation adjustments are made automatically. Other changes may require a reconfiguration and this may be invoked automatically on next touch depending on the autoconfigure setting otherwise the configure option will need to be invoked manually.
​In Windows a windows message is actioned when the monitor metrics changes so any subsequent UPDD related action occurs almost instantly. In Mac and Linux there is a watchdog timer process that runs every 2 seconds looking for these changes so there may be a short delay for the change to take affect.
Monitor identification procedure Identify and associate UPDD Virtual HID devices with Windows internal monitor layout
Anchor mouse Monitors system pointer position and returns to previous position after touch
Sounds Generates sound on touch down, touch up.
Notifications Issues notifications as appropriate, such as device connection/disconnection, evaluation period expiry.
Linux X permission In a Linux environment UPDD Daemon will execute the command 
xhost SI:localhost:root
this grants permission to processes already having root privileges on the localhost system to access the X session in which UPDD Daemon is running.
This is required to allow the driver to post touch data on the X interface.

Command line options

These options have been introduced in version 6.0.271.

In case where the system tray menu is not available, such as the icon has been manually disabled or is not available in some Linux distributions, a number of options have been added to UPDD Daemon.

To access any of the graphical options, pass one of the following options to UPDD Daemon in a command window; status, settings, register, history, toolbars or about - these options are case insensitive!

In the Linux example below the status screen is shown:

./upddenv ./UPDD\ Daemon [parameter]

Here is the same command in MacOS:

/Library/Application\ Support/UPDD/UPDD\ Daemon.app/Contents/MacOS/UPDD\ Daemon [parameter]

And Windows:

Adding UPDD Daemon to Windows start menu

You may wish to add one of the daemon dialogs to the Windows start menu.

Follow these instructions to add in Windows 10.

  • navigate to updd folder in explorer 
  • right click updd daemon 
  • click pin to start  
  • right click daemon in start menu 
  • click more 
  • click open file location (you can rename at this point if required) 
  • right click updd daemon 
  • click properties 
  • add the word settings/status to the target 
  • click ok 

This example invokes "UPDD Daemon" settings and has been renamed to UPDD Settings:

 

 Other Windows releases will have a similar method to add to start menu.

Daemon Application

To run UPDD Daemon as an application we have added an experimental parameter option "icon".

This shows a UPDD driver icon in the top left corner of the screen and can be used to mimic the behaviour of the standard 'system tray' icon / menu.

This is a very basic implementation; only supports left click, only supports the menu and menu options (no notifications) and has a fixed position.

This may be developed further if there is need for it.