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:
- Executer
- 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:
- 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)
- 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).