Linux 如何确保进程被终止?(使用kill命令)

Linux 如何确保进程被终止?(使用kill命令),linux,process,kill,Linux,Process,Kill,我尝试在linux中使用kill命令杀死一个进程。(不使用-9作为参数) 我需要确保这个过程真的结束了。 据我所知,kill命令是异步运行的,可能需要一些时间才能完成 我需要确保,在运行kill之后,我的进程已经在使用bash时终止 你能帮忙吗 谢谢 使用信号0终止进程将检查进程是否仍在运行,而不是实际终止它。只需检查返回代码。使用信号0终止进程将检查进程是否仍在运行,而不是实际终止它。只需检查返回代码。假设$PID保持流程的PID,您可以执行以下操作: kill "$PID" while [

我尝试在linux中使用kill命令杀死一个进程。(不使用-9作为参数)

我需要确保这个过程真的结束了。 据我所知,kill命令是异步运行的,可能需要一些时间才能完成

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

你能帮忙吗


谢谢

使用信号0终止进程将检查进程是否仍在运行,而不是实际终止它。只需检查返回代码。

使用信号0终止进程将检查进程是否仍在运行,而不是实际终止它。只需检查返回代码。

假设
$PID
保持流程的PID,您可以执行以下操作:

kill "$PID"

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

echo "Process is killed"

假设
$PID
保持流程的PID,您可以执行以下操作:

kill "$PID"

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

echo "Process is killed"

kill
用于向进程发送信号。它不一定会终止流程(但通常会终止)
kill
未明确提及的信号将向进程发送
SIGTERM
SIGTERM
上的默认操作是终止进程,但进程可以设置不同的信号处理程序,进程可能不会终止


我想你需要的是一种方法来确定这个过程是否处理了这个信号。这可以使用
ps s$PID
完成。如果将
0
s显示为挂起掩码,则进程已接收到信号并对其进行了处理

kill
用于向进程发送信号。它不一定会终止流程(但通常会终止)
kill
未明确提及的信号将向进程发送
SIGTERM
SIGTERM
上的默认操作是终止进程,但进程可以设置不同的信号处理程序,进程可能不会终止

我想你需要的是一种方法来确定这个过程是否处理了这个信号。这可以使用
ps s$PID
完成。如果将
0
s显示为挂起掩码,则进程已接收到信号并对其进行了处理