我通常pidof
用来获取进程的 pid 并KILL -SIGTERM <pid>
终止它。
管道应该将一个命令的输出作为另一个命令的输入。
那么为什么下面的命令不起作用呢?
pidof firefox | kill -SIGTERM
Run Code Online (Sandbox Code Playgroud)
管道应该将一个命令的输出作为另一个命令的输入。
这是正确的,但kill
不会对标准输入进行任何输入。相反,您需要将其作为命令行参数提供:
kill -SIGTERM "$(pidof firefox)"
Run Code Online (Sandbox Code Playgroud)
或者:
pidof firefox | xargs kill
Run Code Online (Sandbox Code Playgroud)
$(
是 shell 内的命令扩展,而是xargs
外部的。
然而,这些方法有许多极端情况,比如如果有多个 pid 该怎么办,没有 pid 等等——这就是 pkill 存在的原因:
pkill -TERM firefox
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
139 次 |
最近记录: |