nki*_*int 34 process pipe kill
我正在处理一个计算量很大的代码 - 目前 - 崩溃了很多,但我仍在努力:) 当它崩溃时,我无法关闭 GUI 窗口;我必须打开一个 shell 并杀死 -9 进程。
它是一个Java进程,很容易找到:
nkint@zefiro:~$ ps aux | grep java
nkint 2705 16.6 1.0 460928 43680 ? Sl 12:23 0:08 /usr/lib/jvm/java-6-sun-1.6.0.26/bin/java -Djava.library.path=something something
nkint 2809 0.0 0.0 4012 776 pts/0 S+ 12:24 0:00 grep --color=auto java
nkint@zefiro:~$ kill -9 2705
Run Code Online (Sandbox Code Playgroud)
现在这很容易,但相当机械的任务。所以通常我会等待大约 7-8 个进程崩溃,然后kill -9每个进程崩溃。
我想以自动方式执行此操作。我认为应该很容易通过管道传输一些命令来获取 (n-1) 个结果的 idps aux | grep java并杀死它,但我不知道从哪里开始。
谁能给我任何提示?
Mil*_*vic 65
如果要杀死所有已命名的进程,java可以使用以下命令:
killall -9 java
此命令将信号发送到由其名称标识的进程。
Dea*_*ean 25
再多几根管子就能把你带到你想去的地方。这是我的做法:
search_terms='whatever will help find the specific process'
kill $(ps aux | grep "$search_terms" | grep -v 'grep' | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)
这是发生了什么:
grep -v 'grep' 从结果中排除 grep 过程。
awk '{print $2}' 仅打印输出的第二列(在本例中为 PID)
$(...)是命令替换。基本上来自内部命令的结果将用作参数kill
这样做的好处是可以更好地控制被杀死的东西。例如,如果您在共享系统上,您可以编辑搜索词,以便它只尝试终止您自己的 Java 进程。
| 归档时间: |
|
| 查看次数: |
167666 次 |
| 最近记录: |