标签: kill

除了来自 /tmp 之外,将通配符与“killall”一起使用不起作用

我有/tmp/bash.sh一个包含这样的脚本:

killall name*
Run Code Online (Sandbox Code Playgroud)

如果我转到/tmp文件夹然后运行它可以正常工作./bash.sh,但是如果我转到/然后运行它/tmp/bash.sh或者./tmp/bash.sh它不起作用。相反,它抱怨

name*: no process found
Run Code Online (Sandbox Code Playgroud)

为什么?如何解决这个问题?

bash process kill wildcards

0
推荐指数
1
解决办法
109
查看次数

kill -9 后台作业也会杀死 bash

sleep 1 & kill -9 $?
Run Code Online (Sandbox Code Playgroud)

以上将杀死(最有可能)bash shell 或当前终端窗口。

这是为什么?


注意:sleep 1 & kill $?不会杀死外壳/终端。

只是为了确保我没有运行我认为不同的东西,有一些竞争条件等,以下也会产生相同的效果:

/bin/sleep 2 & pid=$?; sleep 1; kill -9 $pid
Run Code Online (Sandbox Code Playgroud)

GNU bash,版本 5.0.3(1)-release

bash kill background-process

0
推荐指数
1
解决办法
43
查看次数

用于终止 grep 命中的所有进程的别名

我正在尝试创建一个 superkill 别名来杀死所有匹配 grep 匹配的进程。我想做:

superkill ruby
Run Code Online (Sandbox Code Playgroud)

并让它杀死所有匹配“ruby”的进程

在我的 .bashrc 中,我添加了这个

alias superkill="ps ax | grep $1 | cut -f1 -d' ' | xargs kill"
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我得到

superkill something
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
    [-e pattern] [-f file] [--binary-files=value] [--color=when]
...
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?

谢谢,凯文


这与副本不同。我在问一个具体问题。重复项是一个概括性的高级问题。阅读副本后我无法提出解决方案。

pkill -f不起作用。如果你这样做

ps -A|grep ruby
Run Code Online (Sandbox Code Playgroud)

进而

pkill -f ruby
Run Code Online (Sandbox Code Playgroud)

进而

ps -A|grep ruby
Run Code Online (Sandbox Code Playgroud)

您将看到 ruby​​ 进程仍然存在。但如果你这样做

kill -9 xxx
Run Code Online (Sandbox Code Playgroud)

其中 xxx 是 PID,这确实有效。我正在寻找的是别名kill -9 来匹配grep 的东西。

更新 - 这让我想起了我对 SO 的失望,每个人都太快地投票或举报(我认为举报没有什么价值)。这是另一个示例,其中所有建议的答案都不起作用:

kevin@kpi-2:~/Documents/code/kpi-veh$ sudo …
Run Code Online (Sandbox Code Playgroud)

bash kill alias

-2
推荐指数
1
解决办法
4022
查看次数

为什么我们总是使用 kill -9

我想知道击杀阶段。我们总是使用kill -9而不是任何其他数字。任何人都可以解释原因。

kill signals

-3
推荐指数
3
解决办法
6598
查看次数

标签 统计

kill ×4

bash ×3

alias ×1

background-process ×1

process ×1

signals ×1

wildcards ×1