如何确定进程被杀死? (使用kill命令)

发布于 2024-11-04 08:50:16 字数 170 浏览 1 评论 0原文

我尝试在Linux中使用kill命令来终止一个进程。 (不使用 -9 作为参数)

我需要确保该进程确实被终止。 据我所知,kill 命令异步运行,可能需要一些时间才能完成。

我需要确保在使用 bash 运行kill 后我的进程已终止,

您可以帮忙吗?

谢谢!!!

I try to kill a process with the kill command in linux. (not using -9 as argument)

I need to make sure that the process is really killed.
As far as I know, the kill command runs asynchronously and it can take some time till it is finished.

I need to make sure, after I run the kill that my process has died using bash

Can you please assist?

Thanks!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

原野 2024-11-11 08:50:17

假设 $PID 保存着你的进程的 pid,你可以这样做:

kill "$PID"

while [ $(kill -0 "$PID") ]; do
  sleep 1
done

echo "Process is killed"

Assuming $PID holds the pid of your process, you could do something like this:

kill "$PID"

while [ $(kill -0 "$PID") ]; do
  sleep 1
done

echo "Process is killed"
悟红尘 2024-11-11 08:50:17

使用信号 0 杀死进程将检查该进程是否仍在运行,而不是实际杀死它。只需检查返回码即可。

Killing a process with signal 0 will check if the process is still running, and not actually kill it. Just check the return code.

时光磨忆 2024-11-11 08:50:17

kill 用于向进程发送信号。它不一定会终止该进程(但通常会终止)。如果没有明确提及的 kill 信号,则会向进程发送 SIGTERMSIGTERM 上的默认操作是终止进程,但进程可以设置不同的信号处理程序,并且进程可能不会终止。

我认为您需要的是一种查找进程是否已处理信号的方法。这可以使用 ps s $PID 来完成。如果这显示 0s 作为待处理掩码,则进程已收到信号并对其进行处理。

kill is used to send signals to processes. It doesn't necessarily terminate the process (but usually do). kill without explicitly mentioned signal will send SIGTERM to the process. The default action on SIGTERM is to terminate process but process can setup a different signal handler and process might not be terminated.

What, I think you need, is a way to find if the process has handled the signal or not. This can be done using ps s $PID. If this shows 0s as pending mask, the process has received the signal and processed it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文