分享

ubuntu 如何使用终端过滤和终止一些 JAVA 进程

 新用户34008MEn 2021-07-15

我有ps aux | grep -v 'grep' | grep "java" | awk '{print $2}'可以过滤所有 java 进程的命令,但我遇到的问题是我只想选择名称包含corenimbus. 还有其他 java 进程,如 eclipse 和邮件服务器,它们同时运行,我不希望它们在那里。

我已经从Kill Java processes 中检查过它

我是脚本新手,所以如果问题很愚蠢,请原谅我。谢谢!





pkill -f 'java.*(core|nimbus)'

我没有像您这样的 Java 设置,但我确实在我的服务器上运行了大量 Django 应用程序。类似的情况是它们都看起来像 UWSGI 进程。这是一大块ps aux | grep uwsgi

oli       7201  0.0  1.0  70324 20936 ?        S    12:54   0:00 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/asvsforms/uwsgi.ini
oli       7202  0.0  1.0  70336 20956 ?        S    12:54   0:00 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/bnc/uwsgi.ini
oli       7203  0.0  1.0  70456 21016 ?        S    12:54   0:00 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/cleanup/uwsgi.ini
oli       7204  0.0  1.0  70272 21068 ?        S    12:54   0:00 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/emwill/uwsgi.ini
oli       7205  0.0  1.3  88336 28124 ?        S    12:54   0:00 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/qi/uwsgi.ini
oli       7206  0.0  1.0  70256 20996 ?        S    12:54   0:00 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/sbaccuracy/uwsgi.ini

你可以把awk它放下(你不需要grep awk),但是看看pgrep

$ pgrep -af 'uwsgi.*cleanup'
7203 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/cleanup/uwsgi.ini
7217 /web/venv/bin/uwsgi --include /web/django-uwsgi.ini --ini /web/cleanup/uwsgi.ini

-f是这里真正需要的。这将模式搜索扩展到用于运行某些东西的整个命令行。没有它,它只会搜索第一部分。-a只是这里输出的全线。

无论如何,要杀死它,我们只需切换到pkill几乎相同的命令。它没有相同的输出功能,但这不是它的设计目的。这使我们回到了答案的顶部。


如果您要坚持过滤ps,请不要使用ps|grep|grep|awk|egrep|awk|xargs kill或现在建议的任何内容。它只是看起来很傻。一个awk就可以做所有的过滤

ps aux | awk '/java.*(core|nimbus)/ {print $2}'

此外,您可以直接awk内部发送要杀死的列表

ps aux | awk '/java.*(core|nimbus)/ {print $2 | kill}'

我还是挑选pgreppkill虽然。

相关文章推荐:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多