Linux: close a program with command line (not kill it)

command linekilllinux

Some applications only allow one running instance (like eclipse, if you want to use the same workspace). So if I log in from another location, I have to kill/close the application that was open when I previously logged in from another location.

I always use kill command to kill the running process. But, if you kill a process, it might not save some states that are useful for future usage. However, if you "close" it properly by clicking on the close button, for example, it will save the states properly.

Is there a way to properly "close" an application from command line? I know this can vary from applications, so let's be a bit more generic: how to send a signal to another running application, and this signal works just as if we click the "close" button in the top bar?

Best Answer

By default, the kill command will send SIGTERM (termination signal) to the running process. Unlike SIGKILL, which will forcibly kill the process with no chance to respond, the SIGTERM signal can be intercepted by the process, allowing it to terminate gracefully. Whether or not it actually does terminate gracefully is entirely dependent on the process itself; it can just as easily kill itself or ignore the signal entirely.

You can ensure that you are sending SIGTERM instead of some other signal by making it explicit on the command line thus:

kill -s TERM <pid>
Related Question