linux - 使用 Bash 自动终止匹配进程

标签 linux bash shell

我需要创建一个脚本 (.sh),我可以用它在一个命令中终止进程。

当我执行 $ pgrep -f vmware

它显示了一个列表:

2234
2241
2251
2296
4751

现在我需要为每个 sudo kill -9 4751

有没有办法把它自动化成

sh sudokiller.sh vmware 那么它会自动执行任务吗?或者有更好的方法?

最佳答案

你想要pkill;它具有与 pgrep 几乎完全相同的命令行选项:

$ pkill -?
Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
    [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]

事实上,在我的系统(Slackware 14.1)上 /usr/bin/pgrep 实际上是 /usr/bin/pkill 的符号链接(symbolic link),它在运行时搜索pgrep,并在以 pkill 运行时终止。

例子:

me@host:~$ pgrep -f test.sh
1927
1932
1937
1945
1950
1955
1960
1965
1970
1975
1980
me@host:~$ pkill -f test.sh
me@host:~$ pgrep -f test.sh
me@host:~$

关于linux - 使用 Bash 自动终止匹配进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905905/

相关文章:

linux - GNU 进行奇怪的变量替换

python解压缓冲区数据

linux - 使用 bash 自动安装脚本

linux - 如何让 awk 命令在 Bash 脚本中工作?

linux - 如何在 bash 中连接两个字符串作为文件名?

c - C 遍历链表,陷入循环

sql - linq 用于连接两个表

linux - 编写Shell脚本以安装cron作业

python - Linux 上的 Pylint `--good-names` 语法

linux - 将时间转换为 unix 时间戳