# quit

0th

Percentile

##### Terminate an R Session

The function quit or its alias q terminate the current R session.

Keywords
environment
##### Usage
quit(save = "default", status = 0, runLast = TRUE) q(save = "default", status = 0, runLast = TRUE)
##### Arguments
save
a character string indicating whether the environment (workspace) should be saved, one of "no", "yes", "ask" or "default".
status
the (numerical) error status to be returned to the operating system, where relevant. Conventionally 0 indicates successful completion.
runLast
should .Last() be executed?
##### Details

save must be one of "no", "yes", "ask" or "default". In the first case the workspace is not saved, in the second it is saved and in the third the user is prompted and can also decide not to quit. The default is to ask in interactive use but may be overridden by command-line arguments (which must be supplied in non-interactive use).

Immediately before normal termination, .Last() is executed if the function .Last exists and runLast is true. If in interactive use there are errors in the .Last function, control will be returned to the command prompt, so do test the function thoroughly. There is a system analogue, .Last.sys(), which is run after .Last() if runLast is true.

Exactly what happens at termination of an R session depends on the platform and GUI interface in use. A typical sequence is to run .Last() and .Last.sys() (unless runLast is false), to save the workspace if requested (and in most cases also to save the session history: see savehistory), then run any finalizers (see reg.finalizer) that have been set to be run on exit, close all open graphics devices, remove the session temporary directory and print any remaining warnings (e.g., from .Last() and device closure).

Some error status values are used by R itself. The default error handler for non-interactive use effectively calls q("no", 1, FALSE) and returns error status 1. Error status 2 is used for R ‘suicide’, that is a catastrophic failure, and other small numbers are used by specific ports for initialization failures. It is recommended that users choose statuses of 10 or more.

Valid values of status are system-dependent, but 0:255 are normally valid. (Many OSes will report the last byte of the value, that is report the value modulo 256. But not all.) windows

Windows calls the status the ‘error code’ or ‘exit code’. It is returned in the environment variable %ERRORLEVEL% in cmd.exe, and in LASTEXITCODE in Windows PowerShell. Note that the Rterm reliably reports the status value, but Rgui may give an error code from the GUI interface.

##### Note

The R.app GUI on OS X has its own version of these functions with slightly different behaviour for the save argument (the GUI's ‘Startup’ preferences for this action are taken into account).

##### Warning

The value of .Last is for the end user to control: as it can be replaced later in the session, it cannot safely be used programmatically, e.g.\ifelse{latex}{\out{~}}{ } by a package. The other way to set code to be run at the end of the session is to use a finalizer: see reg.finalizer.

##### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

.First for setting things on startup.

• quit
• q
• .Last
• .Last.sys
##### Examples
library(base) ## Not run: ## Unix-flavour example # .Last <- function() { # graphics.off() # close devices before printing # cat("Now sending PDF graphics to the printer:\n") # system("lpr Rplots.pdf") # cat("bye bye...\n") # } # quit("yes")## End(Not run) 
Documentation reproduced from package base, version 3.3.0, License: Part of R 3.3.0

### Community examples

Looks like there are no examples yet.