Process::Status
The status of a terminated process. Returned by Process#wait.
Class methods
Instance methods
Returns true if this reference is the same as other. Invokes same?.
Returns true if the process terminated abnormally.
Equivalent to ExitReason#abnormal?
#exit_reasonprovides more insights into the specific exit reason.#normal_exit?returns the inverse.
Returns a textual description of this process status.
Process.run("true").description # => "Process exited normally"
process = Process.new("sleep", ["10"])
process.terminate
process.wait.description # => "Process received and didn't handle signal TERM (15)"
ExitReason#description provides the specific messages for non-signal exits.
Returns the exit code of the process if it exited normally (#normal_exit?).
Raises RuntimeError if the status describes an abnormal exit.
Process.run("true").exit_code # => 0
Process.run("exit 123", shell: true).exit_code # => 123
Process.new("sleep", ["10"]).tap(&.terminate).wait.exit_code # RuntimeError: Abnormal exit has no exit code
Returns the exit code of the process if it exited normally.
Returns nil if the status describes an abnormal exit.
Process.run("true").exit_code? # => 0
Process.run("exit 123", shell: true).exit_code? # => 123
Process.new("sleep", ["10"]).tap(&.terminate).wait.exit_code? # => nil
If signal_exit? is true, returns the Signal the process
received and didn't handle. Will raise if signal_exit? is false.
Available only on Unix-like operating systems.
NOTE: #exit_reason is preferred over this method as a portable alternative
which also works on Windows.
Returns the exit Signal or nil if there is none.
On Windows returns always nil.
#exit_reasonis a portable alternative.
Platform-specific exit status code, which usually contains either the exit code or a termination signal.
The other Process::Status methods extract the values from exit_status.
See Object#hash(hasher)
Prints a textual representation of the process status to io.
The result is similar to #to_s, but prefixed by the type name,
delimited by square brackets, and constants use full paths:
Process::Status[0], Process::Status[1], Process::Status[Signal::HUP],
Process::Status[LibC::STATUS_CONTROL_C_EXIT].
Returns true if the process terminated normally.
Equivalent to ExitReason::Normal
#exit_reasonprovides more insights into other exit reasons.#abnormal_exit?returns the inverse.
Returns true if the process was terminated by a signal.
NOTE: In contrast to WIFSIGNALED in glibc, the status code 0x7E (SIGSTOP)
is considered a signal.
#abnormal_exit?is a more portable alternative.#exit_signal?provides more information about the signal.
Returns the exit status as indicated by the operating system.
It can encode exit codes and termination signals and is platform-specific.
Prints a textual representation of the process status to io.
A normal exit status prints the numerical value (0, 1 etc) or a named
status (e.g. STATUS_CONTROL_C_EXIT on Windows).
A signal exit status prints the name of the Signal member (HUP, INT, etc.).
Returns a textual representation of the process status.
A normal exit status prints the numerical value (0, 1 etc) or a named
status (e.g. STATUS_CONTROL_C_EXIT on Windows).
A signal exit status prints the name of the Signal member (HUP, INT, etc.).