### 2.2 Quitting Octave ¶

Shutdown is initiated with the `exit` or `quit` commands (they are equivalent). Similar to startup, Octave has a shutdown process that can be customized by user script files. During shutdown Octave will search for the script file `finish.m` in the function load path. Commands to save all workspace variables or cleanup temporary files may be placed there. Additional functions to execute on shutdown may be registered with `atexit`.

quit ¶
quit `cancel` ¶
quit `force` ¶
quit `("cancel")` ¶
quit `("force")` ¶
quit `(status)` ¶
quit `(status, "force")` ¶
exit `(…)` ¶

  Quit the current Octave session.

  If the optional integer value status is supplied, pass that value to the operating system as Octave’s exit status. The default value is zero.

  When exiting, Octave will attempt to run the m-file `finish.m` if it exists. User commands to save the workspace or clean up temporary files may be placed in that file. Alternatively, another m-file may be scheduled to run using `atexit`. If an error occurs while executing the `finish.m` file, Octave does not exit and control is returned to the command prompt.

  If the optional argument `"cancel"` is provided, Octave does not exit and control is returned to the command prompt. This feature allows the `finish.m` file to cancel the quit process.

  If the user preference to request confirmation before exiting, Octave will display a dialog and give the user an option to cancel the exit process.

  If the optional argument `"force"` is provided, no confirmation is requested, and the execution of the `finish.m` file is skipped.

  Programming Note: `exit` is an alias for `quit` and can be used interchangeably.

  See also: atexit.

atexit `(fcn)` ¶
atexit `(fcn, true)` ¶
atexit `(fcn, false)` ¶
`status =` atexit `(fcn, false)` ¶

  Register a function to be called when Octave exits.

  For example,

      function last_words ()
        disp ("Bye bye");
      endfunction
      atexit ("last_words");

  will print the message `"Bye bye"` when Octave exits.

  The additional argument flag will register or unregister fcn from the list of functions to be called when Octave exits. If flag is true, the function is registered, and if flag is false, it is unregistered. For example, after registering the function `last_words` above,

      atexit ("last_words", false);

  will remove the function from the list and Octave will not call `last_words` when it exits.

  The optional output status is only available when unregistering a function. The value is true if the unregistering was successful and false otherwise.

  Programming Note: `atexit` only removes the first occurrence of a function from the list; if a function was placed in the list multiple times with `atexit`, it must also be removed from the list multiple times.

  See also: quit.