Linux:用命令行关闭程序(不要杀死它)

Cur*_*ind 26 linux kill command-line

一些应用程序只允许一个运行实例(比如 eclipse,如果你想使用相同的工作空间)。因此,如果我从其他位置登录,则必须终止/关闭之前从其他位置登录时打开的应用程序。

我总是使用 kill 命令来终止正在运行的进程。但是,如果您终止一个进程,它可能无法保存一些对未来使用有用的状态。但是,如果您通过单击关闭按钮正确“关闭”它,例如,它将正确保存状态。

有没有办法从命令行正确“关闭”应用程序?我知道这可能因应用程序而异,所以让我们更通用一点:如何向另一个正在运行的应用程序发送信号,这个信号就像我们单击顶部栏中的“关闭”按钮一样工作?

gol*_*udo 39

默认情况下,kill 命令会向SIGTERM正在运行的进程发送(终止信号)。不像SIGKILL,它会在没有机会响应的情况下强行杀死进程,SIGTERM信号可以被进程拦截,允许它优雅地终止。无论它实际上终止优雅是完全依赖于过程本身; 它可以很容易地杀死自己或完全忽略信号。

您可以SIGTERM通过在命令行上明确显示来确保您正在发送而不是其他一些信号,因此:

kill -s TERM <pid>
Run Code Online (Sandbox Code Playgroud)

  • Firefox 似乎(坏了)。如果我运行 `kill -s TERM &lt;firefox-pid&gt;`,它不会正常关闭,当我再次启动它时,它会询问我是否要恢复崩溃的会话。:叹: (3认同)

Con*_*ick 8

请注意,当使用pkill而不是 时kill,指定 TERM 的语法是:

pkill -TERM <process-name>
Run Code Online (Sandbox Code Playgroud)

pkill 就像kill一样,但您可以使用进程名称而不是id。 man pkill