The shell service is used to provide shell access and commanding from mission operations to the OBC. It may also be used between a developer’s system and the OBC when in a development or testing environment.
The shell service provides shell functionality by implementing the shell protocol. The shell protocol is UDP-based which means a connection is required between the OBC and ground segment capable of transferring UDP packets. This should be established using a standard network connection.
The shell service has a couple configuration options which may be defined in the system’s config.toml file:
ip- Specifies the service’s IP address
port- Specifies the port on which the service will be listening for UDP packets
[shell-service.addr] ip = "0.0.0.0" port = 8050
Running the Service from KubOS¶
The Kubos Linux distribution (as of v1.3.0) ships with the shell
service installed and configured to run on boot. This can be verified by
booting the KubOS system, running the
ps command and looking for the
shell-service process. If the service is not running then it can
be started like so:
$ /etc/init.d/S90shell-service start
Running the Service from Source¶
The shell service can also be run from source if required.
The source is located in the folder
in the KubOS source repo. The service can be started like so:
$ cd kubos/services/shell-service $ cargo run -- -c config.toml
The service will look for the given
config.toml file in order to get the
needed configuration options.
Communicating with the Shell Service¶
Users should establish a ground-side client which implements the shell protocol in order to access the OBC’s shell over their communications device.
Kubos provides an example shell client to allow users to learn and experiment with the shell service prior to the formal shell client being developed. For more information, please refer to the shell connection tutorial.