可以使用 "kill" 作为结束进程的标准方式吗?

Is it ok to use "kill" as a standard-way to end processes?

我想使用 vlc 循环播放视频,直到操作完成。我的想法是做这样的事情:

vlc -f --loop loopvideo.mpg
[do some other stuff]
if (finished) 
  killall vlc
fi

来自windows 最初我仍然觉得杀死一个进程是一件很糟糕的事情,只有当某些东西崩溃时你才会这样做。在 *Nix 系统上是否有 "cleaner" 方法而不是 "kill"-命令,或者这很好吗?

kill 很好,默认情况下它应该向进程发送一个信号要求它终止。如果您愿意,可以使用 killall -s TERM vlc 来确定这一点。该进程应该拦截信号并优雅地自行关闭。

真正终止进程需要发送 KILL 而不是 TERM。该信号被发送到操作系统而不是进程,因此 O/S 实际上会停止进程而不等待进程清理。您可能已经看到此命令的较短形式 kill -9 <pid>,其中 -9 = -KILL