Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 176739
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T13:55:51+00:00 2026-05-11T13:55:51+00:00

In a comment on this answer of another question , the commenter says: don’t

  • 0

In a comment on this answer of another question, the commenter says:

don’t use kill -9 unless absolutely necessary! SIGKILL can’t be trapped so the killed program can’t run any shutdown routines to e.g. erase temporary files. First try HUP (1), then INT (2), then QUIT (3)

I agree in principle about SIGKILL, but the rest is news to me. Given that the default signal sent by kill is SIGTERM, I would expect it is the most-commonly expected signal for graceful shutdown of an arbitrary process. Also, I have seen SIGHUP used for non-terminating reasons, such as telling a daemon ‘re-read your config file.’ And it seems to me that SIGINT (the same interrupt you’d typically get with Ctrl-C, right?) isn’t as widely supported as it ought to be, or terminates rather ungracefully.

Given that SIGKILL is a last resort — Which signals, and in what order, should you send to an arbitrary process, in order to shut it down as gracefully as possible?

Please substantiate your answers with supporting facts (beyond personal preference or opinion) or references, if you can.

Note: I am particularly interested in best practices that include consideration of bash/Cygwin.

Edit: So far, nobody seems to mention INT or QUIT, and there’s limited mention of HUP. Is there any reason to include these in an orderly process-killing?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T13:55:52+00:00Added an answer on May 11, 2026 at 1:55 pm

    SIGTERM tells an application to terminate. The other signals tell the application other things which are unrelated to shutdown but may sometimes have the same result. Don’t use those. If you want an application to shut down, tell it to. Don’t give it misleading signals.

    Some people believe the smart standard way of terminating a process is by sending it a slew of signals, such as HUP, INT, TERM and finally KILL. This is ridiculous. The right signal for termination is SIGTERM and if SIGTERM doesn’t terminate the process instantly, as you might prefer, it’s because the application has chosen to handle the signal. Which means it has a very good reason to not terminate immediately: It’s got cleanup work to do. If you interrupt that cleanup work with other signals, there’s no telling what data from memory it hasn’t yet saved to disk, what client applications are left hanging or whether you’re interrupting it "mid-sentence" which is effectively data corruption.

    For more information on what the real meaning of the signals is, see sigaction(2). Don’t confuse "Default Action" with "Description", they are not the same thing.

    SIGINT is used to signal an interactive "keyboard interrupt" of the process. Some programs may handle the situation in a special way for the purpose of terminal users.

    SIGHUP is used to signal that the terminal has disappeared and is no longer looking at the process. That is all. Some processes choose to shut down in response, generally because their operation makes no sense without a terminal, some choose to do other things such as recheck configuration files.

    SIGKILL is used to forcefully remove the process from the kernel. It is special in the sense that it’s not actually a signal to the process but rather gets interpreted by the kernel directly.

    Don’t send SIGKILL. – SIGKILL should certainly never be sent by scripts. If the application handles the SIGTERM, it can take it a second to cleanup, it can take a minute, it can take an hour. Depending on what the application has to get done before it’s ready to end. Any logic that "assumes" an application’s cleanup sequence has taken long enough and needs to be shortcut or SIGKILLed after X seconds is just plain wrong.

    The only reason why an application would need a SIGKILL to terminate, is if something bugged out during its cleanup sequence. In which case you can open a terminal and SIGKILL it manually. Aside from that, the only one other reason why you’d SIGKILL something is because you WANT to prevent it from cleaning itself up.

    Even though half the world blindly sends SIGKILL after 5 seconds it’s still horribly wrong thing to do.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In a comment on this answer to another question , someone said that they
Not Looking for a Use Framework XXX Answer This question is not intended for
This is regarding Patrick DW's comment on my answer to this question. Multiple selectors:
The comment to this answer got me wondering. I've always thought that C was
I got a comment to my answer on this thread: Malloc inside a function
This question arose from the discussion in the comments of this answer . First,
This comment confuses me: kill -l generally lists all signals. I thought that a
just saw this comment in a what JS lib do you use poll @Xanti
My apologies if this was answered in another question, I could not find an
When answering a comment to another answer of mine here , I found what

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.