28

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?

0

2 Answers 2

40

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>
2
  • 1
    Yeah, the OP's premise is false. The kill command attempts a graceful shutdown. If the application doesn't close down cleanly in that case, it's broken. (And the vast majority of applications are not broken.) Mar 31, 2012 at 8:58
  • 3
    Firefox seems to be (broken). If I run kill -s TERM <firefox-pid>, it will not shut down gracefully, and when I start it again, it asks me if I want to recover the crashed session. :sigh:
    – Wilson F
    Jun 19, 2015 at 18:18
9

Note that when using pkill rather than kill, to specify TERM the syntax is:

pkill -TERM <process-name>

pkill is just like kill, but you can use the process name rather than the id. man pkill

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .