Executer

The Executer provides a service whereby users can execute programs on remote hosts (which are running the Executer). The Executer should always be running on each of the computers on the robots and on cass.

Table of contents:

  1. Executer
  2. Design of Executer

Invoking Executer

Executer [-d debug_level] 

Design of Executer

The Executer is based on the Executer of the ISR and allows programs to connect from remote hosts (or from the local host) and execute programs. However, there are a number of differences in the RSS Executer to promote re-use of software components. In particular, the Executer is always running (to avoid the tedious requirement that everyone run the Executer on every host that they want to use).

The fact that the Executer is always running has a number of consequences that make the design of the Executer a little more complex:

  1. The Executer must be able to run the processes as each of the users that are using the robots (therefore the Executer must run as root)
  2. Users must be verified by the Executer because it will always be running and poses a potential security hole (especially as it runs as root!). Thus, users of the Executer must log on to the Executer and supply a name and password. Actually, the user of the Executer is the StateManager so it will have to get the username and password and forward it to any Executers that it wishes to use. The Executer will check the name and password with the DBManager which in turn means that the access to the DBManager must be restricted (otherwise people could connect to the DB and just lookup our names and passwords).