NAME
amsshell - Asynchronous Message Service (AMS) test message sender (UNIX)
SYNOPSIS
amsshell unit_name role_name application_name authority_name [{ p | s | q | a }]
DESCRIPTION
amsshell is a message issuance program designed to test AMS functionality.
When amsshell is started, it registers as an application module in the unit identified by unit_name of the venture identified by application_name and authority_name; the role in which it registers must be indicated in role_name. A configuration server for the local continuum and a registrar for the indicated unit of the indicated venture (which may both be instantiated in a single amsd daemon task) must be running in order for amsshell to run.
amsshell runs as two threads: a background thread that receives watches for AMS configuration events (including shutdown), together with a foreground thread that acquires operating parameters and message content in lines of console input to control the issuance of messages.
The first character of each line of input from stdin to the amsshell indicates the significance of that line:
-
=
Sets the name of the subject on which all messages are to be issued, until superseded by another "=" line. The subject name must begin at the second character of this line. Optionally, subject name may be followed by a single ' ' (space) character and then the text of the first message to be issued on this subject, which is to be issued immediately.
-
r
Sets the number of the role constraining the domain of message issuance. The role number must begin at the second character of this line.
-
c
Sets the number of the continuum constraining the domain of message issuance. The continuum number must begin at the second character of this line.
-
u
Sets the number of the unit constraining the domain of message issuance. The unit number must begin at the second character of this line.
-
m
Sets the number of the module to which subsequent messages are to be issued. The module number must begin at the second character of this line.
-
.
Terminates amsshell.
When the first character of a line of input from stdin is none of the above, the entire line is taken to be the text of a message that is to be issued immediately, on the previously specified subject, to the previously specified module (if applicable), and subject to the previously specified domain (if applicable).
By default, amsshell runs in "publish" mode: when a message is to be issued, it is simply published. This behavior can be overridden by providing a fifth command-line argument to amsshell - a "mode" indicator. The supported modes are as follows:
-
p
This is "publish" mode. Every message is published.
-
s
This is "send" mode. Every message is sent privately to the application module identified by the specified module, unit, and continuum numbers.
-
q
This is "query" mode. Every message is sent privately to the application module identified by the specified module, unit, and continuum numbers, and amsshell then waits for a reply message before continuing.
-
a
This is "announce" mode. Every message is announced to all modules in the domain established by the previously specified role, unit, and continuum numbers.
EXIT STATUS
-
-1
amsshell terminated with an error as noted in the ion.log file.
-
"0"
amsshell terminated normally.
FILES
A MIB initialization file with the applicable default name (see amsrc(5)) must be present.
ENVIRONMENT
No environment variables apply.
DIAGNOSTICS
-
amsshell can't register.
amsshell failed to register, for reasons noted in the ion.log file.
-
amsshell can't set event manager.
amsshell failed to start its background thread, for reasons noted in the ion.log file.
BUGS
Report bugs to <https://github.com/nasa-jpl/ION-DTN/issues>
SEE ALSO
amslog(1), amsrc(5)