| java.lang.Object | |
| ↳ | com.trilead.ssh2.Session |
A Session is a remote execution of a program. "Program" means
in this context either a shell, an application or a system command. The
program may or may not have a tty. Only one single program can be started on
a session. However, multiple sessions can be active simultaneously.
| Fields | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| cm | |||||||||||
| cn | |||||||||||
| flag_closed | |||||||||||
| flag_execution_started | |||||||||||
| flag_pty_requested | |||||||||||
| flag_x11_requested | |||||||||||
| rnd | |||||||||||
| x11FakeCookie | |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Close this session.
| |||||||||||
Execute a command on the remote machine.
| |||||||||||
Get the name of the signal by which the process on the remote side was
stopped - if available and applicable.
| |||||||||||
Get the exit code/status from the remote command - if available.
| |||||||||||
This method can be used to perform end-to-end session (i.e., SSH channel)
testing.
| |||||||||||
Basically just a wrapper for lazy people - identical to calling
requestPTY("dumb", 0, 0, 0, 0, null). | |||||||||||
Basically just another wrapper for lazy people - identical to calling
requestPTY(term, 0, 0, 0, 0, null). | |||||||||||
Allocate a pseudo-terminal for this session.
| |||||||||||
Request window change.
| |||||||||||
Request X11 forwarding for the current session.
| |||||||||||
Start a shell on the remote machine.
| |||||||||||
Start a subsystem on the remote machine.
| |||||||||||
This method blocks until certain conditions hold true on the underlying SSH-2 channel.
| |||||||||||
This method is deprecated.
This method has been replaced with a much more powerful wait-for-condition
interface and therefore acts only as a wrapper.
| |||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
Close this session. NEVER forget to call this method to free up resources -
even if you got an exception from one of the other methods (or when
getting an Exception on the Input- or OutputStreams). Sometimes these other
methods may throw an exception, saying that the underlying channel is
closed (this can happen, e.g., if the other server sent a close message.)
However, as long as you have not called the close()
method, you may be wasting (local) resources.
Execute a command on the remote machine.
| cmd | The command to execute on the remote host. |
|---|
| IOException |
|---|
Get the name of the signal by which the process on the remote side was stopped - if available and applicable. Be careful - not all server implementations return this value.
String holding the name of the signal, or
null if the process exited normally or is still
running (or if the server forgot to send this information).
Get the exit code/status from the remote command - if available. Be
careful - not all server implementations return this value. It is
generally a good idea to call this method only when all data from the
remote side has been consumed (see also the method).
Integer holding the exit code, or
null if no exit code is (yet) available.
This method can be used to perform end-to-end session (i.e., SSH channel) testing. It sends a 'ping' message to the server and waits for the 'pong' from the server.
Implementation details: this method sends a SSH_MSG_CHANNEL_REQUEST request ('trilead-ping') to the server and waits for the SSH_MSG_CHANNEL_FAILURE reply packet.
| IOException | in case of any problem or when the session is closed |
|---|
Basically just a wrapper for lazy people - identical to calling
requestPTY("dumb", 0, 0, 0, 0, null).
| IOException |
|---|
Basically just another wrapper for lazy people - identical to calling
requestPTY(term, 0, 0, 0, 0, null).
| term |
|---|
| IOException |
|---|
Allocate a pseudo-terminal for this session.
This method may only be called before a program or shell is started in this session.
Different aspects can be specified:
terminal_modes) is described in RFC4254.| term | The TERM environment variable value (e.g., vt100) |
|---|---|
| term_width_characters | Terminal width, characters (e.g., 80) |
| term_height_characters | Terminal height, rows (e.g., 24) |
| term_width_pixels | Terminal width, pixels (e.g., 640) |
| term_height_pixels | Terminal height, pixels (e.g., 480) |
| terminal_modes | Encoded terminal modes (may be null) |
| IOException |
|---|
Request window change.
This method may only be called after a program or shell is started in this session.
Zero dimension parameters are ignored. The character/row dimensions override the pixel dimensions (when nonzero). Pixel dimensions refer to the drawable area of the window. The dimension parameters are only informational.
| term_width_characters | Terminal width, characters (e.g., 80) |
|---|---|
| term_height_characters | Terminal height, rows (e.g., 24) |
| term_width_pixels | Terminal width, pixels (e.g., 640) |
| term_height_pixels | Terminal height, pixels (e.g., 480) |
| IOException |
|---|
Request X11 forwarding for the current session.
You have to supply the name and port of your X-server.
This method may only be called before a program or shell is started in this session.
| hostname | The hostname of the real (target) X11 server (e.g., 127.0.0.1) |
|---|---|
| port | The port of the real (target) X11 server (e.g., 6010) |
| cookie | If non-null, then present this cookie to the real X11 server |
| singleConnection | If true, then the server is instructed to only forward one single connection, no more connections shall be forwarded after first, or after the session channel has been closed |
| IOException |
|---|
Start a subsystem on the remote machine. Unless you know what you are doing, you will never need this.
| name | The name of the subsystem. |
|---|
| IOException |
|---|
This method blocks until certain conditions hold true on the underlying SSH-2 channel.
This method returns as soon as one of the following happens:
ChannelCondition) holds true
In any case, the result value contains ALL current conditions, which may be more
than the specified condition set (i.e., never use the "==" operator to test for conditions
in the bitmask, see also comments in ChannelCondition).
Note: do NOT call this method if you want to wait for STDOUT_DATA or STDERR_DATA and
there are concurrent threads (e.g., StreamGobblers) that operate on either of the two
InputStreams of this Session (otherwise this method may
block, even though more data is available in the StreamGobblers).
| condition_set | A bitmask based on ChannelCondition values |
|---|---|
| timeout | Non-negative timeout in ms, 0 means no timeout |
This method is deprecated.
This method has been replaced with a much more powerful wait-for-condition
interface and therefore acts only as a wrapper.
This method blocks until there is more data available on either the
stdout or stderr InputStream of this Session. Very useful
if you do not want to use two parallel threads for reading from the two
InputStreams. One can also specify a timeout. NOTE: do NOT call this
method if you use concurrent threads that operate on either of the two
InputStreams of this Session (otherwise this method may
block, even though more data is available).
| timeout | The (non-negative) timeout in ms. 0 means no
timeout, the call may block forever. |
|---|
0 if no more data will arrive.1 if more data is available.-1 if a timeout occurred.| IOException | |
| IOException |