为什么 kill 命令在 Openshot 上不起作用?

为什么 kill 命令在 Openshot 上不起作用?

我在 Ubuntu 14.04(64 位)中使用 OpenShot 版本 1.4.3。

这是我的系统详细信息:

lsb_release -a

    Distributor ID: Ubuntu
    Description:    Ubuntu 14.04.4 LTS
    Release:    14.04
    Codename:   trusty

uname -a

    Linux 4.2.0-30-generic #36~14.04.1-Ubuntu SMP
    Fri Feb 26 18:49:23 UTC 2016
    x86_64 x86_64 x86_64 GNU/Linux

我在 Ubuntu 14.04 上打开了 openshot 来编辑我的视频。但是当我尝试使用kill(也尝试过 pkill)命令关闭它时,什么也没发生。当我尝试使用命令关闭其他已安装的应用程序时,它们都按预期正常工作kill

我甚至尝试过killsudo但是没用。

  1. 为什么kill不可以在 Openshot 上运行?

  2. Ubuntu 的 Openshot 实现中是否存在导致该问题的已知错误?

更新 :

正如有人在评论中提到的那样,kill -9运行正常。但为什么不 kill工作呢?

kill有人可能会认为它是和命令的重复kill -9。但我的问题不是如何杀死 openshot。

我的问题是为什么 kill 无法在 Ubuntu 上用于 openshot?因此,在将我的此内容标记为重复之前,请确保这一点。

具体来说,为什么 OpenShots 无法正常使用 kill?是它的实现本身就是这样还是因为有什么 bug?

在此处输入图片描述

答案1

发生这种情况时,请使用“毫不留情”选项kill

kill -9 5772

5772您要终止的应用程序的 pid 在哪里?

或者你可以使用以下命令通过进程名称终止进程:

pkill openshot

或者稍微复杂一点的方法。找到 pid 并在一行中将其杀死

pidof openshot | xargs kill -9 

答案2

kill发送一个信号到目标进程。进程可以抓住信号并处理它们,除了SIGKILLSIGSTOP信号。如果一个进程收到一个它不准备处理的信号,它就会死亡。如果它处理了信号,那么进程就不能保证会死亡——它可以为所欲为。换句话说,一个简单的方法kill <pid>不能保证杀死进程。

在这种情况下,OpenShot 可能正在处理SIGTERM,即发送的默认信号kill。由于SIGKILL无法处理 ,因此使用(与或kill -9相同),OpenShot 被终止。kill -KILLkill -SIGKILL

然而,如果可能的话,kill -9 不应该被使用。它没有给进程清理的机会,因此可能会导致数据丢失/损坏。kill首先尝试普通,如果它在合理的时间间隔后没有死机,那么才尝试kill -9/ kill -KILL

相关内容