Shell Service

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.

Configuration

The shell service has a couple configuration options which may be defined in the system’s config.toml file:

  • [shell-service.addr]

    • ip - Specifies the service’s IP address
    • port - Specifies the port on which the service will be listening for UDP packets

For example:

[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 kubos/services/shell-service 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.