The status of a terminated process. Returned by Process#wait.
Returns true if this reference is the same as other.
Returns true if the process terminated abnormally.
Returns a textual description of this process status.
Returns the exit code of the process if it exited normally (#normal_exit?).
Returns the exit code of the process if it exited normally.
Returns a platform-independent reason why the process terminated.
If #signal_exit? is true, returns the Signal the process received and didn't handle.
DEPRECATED Use #exit_signal? instead.
Returns the exit Signal or nil if there is none.
Platform-specific exit status code, which usually contains either the exit code or a termination signal.
DEPRECATED Use #exit_reason, #exit_code, or #system_exit_status instead
Prints a textual representation of the process status to io.
Returns true if the process terminated normally.
Returns true if the process was terminated by a signal.
Returns true if the process exited normally with an exit code of 0.
Returns the exit status as indicated by the operating system.
Prints a textual representation of the process status to io.
Returns a textual representation of the process status.
Reference
Reference
Reference
Object
Object
Object
Returns true if this reference is the same as other. Invokes same?.
Returns true if the process terminated abnormally.
Equivalent to ExitReason#abnormal?
#exit_reason provides more insights into the specific exit reason.#normal_exit? returns the inverse.Returns a textual description of this process status.
Process::Status.new(0).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 Returns a platform-independent reason why the process terminated.
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.
DEPRECATED Use #exit_signal? instead.
Returns the exit Signal or nil if there is none.
On Windows returns always nil.
#exit_reason is 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.
DEPRECATED Use #exit_reason, #exit_code, or #system_exit_status instead
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_reason provides 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.).
© 2012–2026 Manas Technology Solutions.
Licensed under the Apache License, Version 2.0.
https://crystal-lang.org/api/1.19.0/Process/Status.html