Tim*_*Tim 10 linux kill process
我正在远程服务器上的屏幕会话下运行一些进程。当我试图通过以下方式杀死所有这些进程时:
pkill -U tim
Run Code Online (Sandbox Code Playgroud)
我所有的进程都被杀死,包括那些我不想杀死的进程(即屏幕和 ssh 连接)。
有没有办法杀死除屏幕和 ssh 连接之外的所有进程?
Roy*_*ico 15
有点黑客:
ps -U tim | egrep -v "ssh|screen" | cut -b11-15 | xargs -t kill
Run Code Online (Sandbox Code Playgroud)
这将杀死除任何 ssh 或 screen 进程之外的所有内容。以下是解释的命令:
ps -U tim -- 显然,会列出用户 tim 的每个进程egrep -v "ssh|screen" -- 将删除带有 ssh 或 screen 进程的行cut -b11-15 -- 将剪切第 11-15 列中的数据(通常这是 PID 所在的位置)xargs -t kill -- 将所有进程 ID 传递给 kill 命令如果您更习惯使用 awk,也可以使用 awk。
ps -U tim | egrep -v "ssh|screen" | awk '{print $2}' | xargs -t kill
Run Code Online (Sandbox Code Playgroud)
据我所知,没有任何内置内容。您可以创建这样的脚本:
#!/bin/bash
ps ux | sed -e '/bash/d' -e '/screen/d' | awk '{print $2}' | while read process
do
kill $process
done
Run Code Online (Sandbox Code Playgroud)
如果您想避免杀死任何其他进程,您只需要添加更多进程
-e '/processname/d'
Run Code Online (Sandbox Code Playgroud)
sed 部分的条目。可能有一种更干净的方法来处理它,但这会起作用。
| 归档时间: |
|
| 查看次数: |
15111 次 |
| 最近记录: |