# Function std::process::abort 1.17.0 [−] [src]

    pub fn abort() -> !

Terminates the process in an abnormal fashion.

The function will never return and will immediately terminate the current process in a platform specific "abnormal" manner.

Note that because this function never returns, and that it terminates the process, no destructors on the current stack or any other thread's stack will be run.

This is in contrast to the default behaviour of `panic!` which unwinds the current thread's stack and calls all destructors. When `panic="abort"` is set, either as an argument to `rustc` or in a crate's Cargo.toml, `panic!` and `abort` are similar. However, `panic!` will still call the panic hook while `abort` will not.

If a clean shutdown is needed it is recommended to only call this function at a known point where there are no more destructors left to run.

# Examples

    use std::process;

    fn main() {
        println!("aborting");

        process::abort();

        // execution never gets here
    }Run

The `abort` function terminates the process, so the destructor will not get run on the example below:

    use std::process;

    struct HasDrop;

    impl Drop for HasDrop {
        fn drop(&mut self) {
            println!("This will never be printed!");
        }
    }

    fn main() {
        let _x = HasDrop;
        process::abort();
        // the destructor implemented for HasDrop will never get run
    }Run

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)