我如何杀死节日演讲命令?

时间:2015-08-25 13:40:09

标签: bash pipe kill festival

让我们说我运行以下命令:

cat /var/log/dmesg | festival --tts

这可能会返回消息[1] 4726,指示与此操作关联的进程ID。当我运行kill 4726killall festivalkillall catkillall aplay时,语音不会停止(或者至少在停止前持续相当长的一段时间)。如果我运行上面的命令,我怎么能杀死它开始做的事情?

1 个答案:

答案 0 :(得分:1)

Kill向程序发送SIGTERM。 SIGTERM告诉程序停止,让它正常关闭。该程序是取消分配内存,关闭连接,刷新磁盘,删除临时文件等。因此SIGTERM可能不会立即或快速。

Kill -9,发送SIGSTOP或SIGKILL,只有内核可以看到。内核将终止进程。虽然速度更快,但不允许优雅的退出。

我对节日并不熟悉,所以如果你担心这些命令正在分离进程而你想要阻止所有的孩子,你可以通过从bash shell中产生它们来强制解决问题。当您终止父bash shell时,它将终止它拥有的所有进程。

bash -c "cat /var/log/dmesg | festival --tts" &

你将获得bash bash shell的pid,你可以杀死并清理所有的子程序。