@@ -34,8 +34,7 @@ Related Standards
3434Background
3535**********
3636
37- The subprocess server protocol is implemented in two distinct Flux
38- components:
37+ The subprocess server protocol is implemented in three Flux components:
3938
4039.. list-table ::
4140
@@ -51,6 +50,10 @@ components:
5150 - :program: `sdexec `
5251 - If systemd support is configured
5352
53+ * - Flux shell
54+ - :program: `UID-shell-JOBID.rexec `
55+ - Only available to the job owner.
56+
5457The primary use cases are:
5558
5659#. The job execution service runs job shells on job nodes.
@@ -59,12 +62,14 @@ The primary use cases are:
5962
6063#. The instance owner runs arbitrary processes with :program: `flux exec `.
6164
65+ #. Tool launch such as parallel debugger daemons using :program: `flux exec `.
66+
6267In a multi-user Flux instance where a user transition is necessary in order
6368for the instance owner to run commands with the credentials of a guest user,
64- the subprocess server delegates this to the IMP. On its own, the subprocess
65- server can only run jobs with the credentials of the process it is embedded
66- within (the broker, for example). For more detail, refer to
67- :doc: `RFC 15 <spec_15 >`.
69+ the subprocess server must be instructed to execute tasks using the IMP. On
70+ its own, the subprocess server can only run jobs with the credentials of the
71+ process it is embedded within (the broker, for example). For more detail,
72+ refer to :doc: `RFC 15 <spec_15 >`.
6873
6974Goals
7075*****
@@ -177,7 +182,12 @@ Several response types are distinguished by the type key:
177182.. object :: exec error response
178183
179184The :program: `exec ` response stream SHALL be terminated by an error
180- response per RFC 6, with ENODATA (61) indicating success.
185+ response per RFC 6, with ENODATA (61) indicating success. The server MUST
186+ NOT terminate the stream with ENODATA without first returning the
187+ :program: `exec started ` response, :program: `exec finished ` response, and
188+ :program: `exec output ` responses with the EOF flag set for each open channel.
189+ The client MAY consider it a protocol error if one of those responses is
190+ missing and an ENODATA response is received.
181191
182192Failure of the remote command SHALL be indicated in finished response
183193and SHALL NOT result in an error response. Other errors, such as an
0 commit comments