Joe*_*ile 7 linux bash command kill process
我是Linux新手,我正在构建一个程序,该程序接收进程的名称,获取其PID(我对这部分没有问题),然后将PID传递给kill命令,但它不起作用。事情是这样的:
read -p "Process to kill: " proceso
proid= pidof $proceso
echo "$proid"
kill $proid
Run Code Online (Sandbox Code Playgroud)
有人能告诉我为什么它没有杀死它吗?我知道还有其他一些方法可以做到这一点,即使使用 PID,但它们似乎都不适合我。我相信这是 Bash 语言(我刚刚开始学习)的某种问题。
而不是这个:
Run Code Online (Sandbox Code Playgroud)proid= pidof $proceso
你的意思可能是这样的:
proid=$(pidof $proceso)
Run Code Online (Sandbox Code Playgroud)
即便如此,该程序也可能不会被杀死。默认情况下,kill PID将TERM信号发送到指定的进程,使其有机会有序关闭,例如清理其正在使用的资源。在没有正常清理的情况下发送进程终止的最强信号是KILL使用kill -KILL PIDor kill -9 PID。
我相信这是 bash 语言(我刚刚开始学习)的某种问题。
您发布的原始行proid= pidof $proceso应该会引发错误,并且 Bash 会打印有关它的错误消息。调试问题首先要阅读并理解软件试图告诉您的错误消息。
使用以下命令显示进程的端口和PID:
sudo netstat -plten
Run Code Online (Sandbox Code Playgroud)
进而
kill -9 PID
Run Code Online (Sandbox Code Playgroud)
以下是杀死在端口 8283 上运行且 PID=25334 的进程的示例
| 归档时间: |
|
| 查看次数: |
45870 次 |
| 最近记录: |