GLib.spawn_check_exit_status

function spawn_check_exit_status(exit_status: Number(gint)): Boolean {
    // Gjs wrapper for g_spawn_check_exit_status()
}
  

Set @error if exit_status indicates the child exited abnormally (e.g. with a nonzero exit code, or via a fatal signal).

The GLib.spawn_sync and GLib.child_watch_add family of APIs return an exit status for subprocesses encoded in a platform-specific way. On Unix, this is guaranteed to be in the same format waitpid() returns, and on Windows it is guaranteed to be the result of GetExitCodeProcess().

Prior to the introduction of this function in GLib 2.34, interpreting exit_status required use of platform-specific APIs, which is problematic for software using GLib as a cross-platform layer.

Additionally, many programs simply want to determine whether or not the child exited successfully, and either propagate a GLib.Error or print a message to standard error. In that common case, this function can be used. Note that the error message in @error will contain human-readable information about the exit status.

The @domain and @code of @error have special semantics in the case where the process has an "exit code", as opposed to being killed by a signal. On Unix, this happens if WIFEXITED() would be true of exit_status. On Windows, it is always the case.

The special semantics are that the actual exit code will be the code set in @error, and the domain will be %G_SPAWN_EXIT_ERROR. This allows you to differentiate between different exit codes.

If the process was terminated by some means other than an exit status, the domain will be %G_SPAWN_ERROR, and the code will be GLib.SpawnError.failed.

This function just offers convenience; you can of course also check the available platform via a macro such as %G_OS_UNIX, and use WIFEXITED() and WEXITSTATUS() on exit_status directly. Do not attempt to scan or parse the error message string; it may be translated and/or change in future versions of GLib.

Since 2.34

exit_status

An exit code as returned from GLib.spawn_sync

Returns

true if child exited successfully, false otherwise (and @error will be set)