Module Forward_progress.Exit_code

A module for exit codes.

type t =
  1. | Exit_transient_failure
  2. | Exit_unrecoverable_failure
  3. | Exit_restart_needed
  4. | Exit_reboot_needed
  5. | Exit_upgrade_required

The type of exit code.

Exit_unrecoverable_failure is reserved for programmers error; basically assertions and unhandled exceptions that indicate the process cannot make forward progress, even if the process was restarted.

Exit_transient_failure is for "normal" errors like I/O errors (not enough disk space, etc.), network errors, and the other errors that arise from Stdlib or 3rd party libraries giving a Result.t or something similar.

Exit_restart_needed is reserved for when a process requires itself to restart to make any forward progress. Typical use cases include re-initializing the process with updated configuration files.

Exit_reboot_needed is reserved for when a process requires the machine to reboot to make any forward progress. Typical use cases include installations of system or widely-used shared libraries. You probably won't use it unless you write installers.

Exit_upgrade_required is reserved for when a process or its dependencies (perhaps a kernel or system library) requires an upgrade to make any forward progress. Typical use cases include client software where old clients have been deprecated, and security-conscious software that requires patches to the machine before it will start up.

val show : t -> string

Pretty print as a string

val pp : Stdlib.Format.formatter -> t -> unit

Pretty print on the formatter

val values : t list

All the possible exit codes

val to_int_exitcode : t -> int

An exitcode that can be supplied to exit

val to_short_sentence : t -> string

A short sentence like "A transient failure occurred."