首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grep模拟器的PID和使用kubectl杀死相同

Grep模拟器的PID和使用kubectl杀死相同
EN

Stack Overflow用户
提问于 2020-03-01 09:49:21
回答 1查看 686关注 0票数 0

在命令方面,我需要帮助,在命令中,我尝试用kubectl实现ecm模拟器的PID,并杀死相同的I:

代码语言:javascript
复制
kubectl exec eric-service-0 -n cicd --kubeconfig /root/admin.conf -- bash -c "ps -ef | grep ecm | grep node | awk '{print $2}' "

上面命令的输出:

代码语言:javascript
复制
root      9857     0  0 07:11 ?        00:00:00 bash -c /tmp/simulator/node-v8.11.3-linux-x64/bin/node /tmp/simulator/ecm_mod.js> /tmp/simulatorEcmResponse.txt
root      9863  9857  0 07:11 ?        00:00:00 /tmp/simulator/node-v8.11.3-linux-x64/bin/node /tmp/simulator/ecm_mod.js

预期输出是:

代码语言:javascript
复制
9857 
9863

然后,我需要杀死PID:

代码语言:javascript
复制
kubectl exec eric-service-0 -n cicd --kubeconfig /root/admin.conf -- bash -c "ps -ef | grep ecm | grep node | awk '{print $2}' | xargs kill -9"

当我在服务舱内执行相同的操作时,它是工作的,但是当我从外部通过kubectl执行时,它会产生问题。

有人能告诉我我在这里做错了什么吗?

注意:有两个PID需要从下面的输出中删除:

代码语言:javascript
复制
eric-service-0:/ # ps -ef | grep ecm | grep node
root      9857     0  0 07:11 ?        00:00:00 bash -c /tmp/simulator/node-v8.11.3-linux-x64/bin/node /tmp/simulator/ecm_mod.js> /tmp/simulatorEcmResponse.txt
root      9863  9857  0 07:11 ?        00:00:00 /tmp/simulator/node-v8.11.3-linux-x64/bin/node /tmp/simulator/ecm_mod.js

编辑:

@Cyrus要求的命令输出如下:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-05 15:46:18

将此作为Community的答案,以获得更好的可见性。解决方案已在@Cyrus的评论中提供。

简而言之,OP想要使用他们的PID's来杀死/中断某些进程。OP希望在包含ecm simulator的特定的pod/容器上从集群级别进行此操作。

为此,使用了以下命令:

  • exec -在容器中执行命令
  • -- bash -在容器内运行bash
  • ps -ef -列出系统上的所有进程
  • grep - serch特定模式
  • awk -模式扫描和处理语言。
  • xargs -从标准输入构建和执行命令行
  • kill -向进程发送信号

MANUAL中,您可以找到一些有关ps标志的信息:

代码语言:javascript
复制
To see every process on the system using standard syntax:
          ps -e
          ps -ef
          ps -eF
          ps -ely

但是,每个标志仍将提供另一个输出,如下所示:

代码语言:javascript
复制
-e
 PID TTY  TIME CMD

-ef
UID  PID  PPID  C STIME TTY  TIME CMD

赛勒斯建议使用以下命令:

代码语言:javascript
复制
kubectl exec eric-service-0 -n cicd --kubeconfig /root/admin.conf -- bash -c "pgrep -f 'node.*ecm'"

bash -c -如果存在-c选项,则从第一个非选项参数command_string中读取命令。

还请在评论中解释:

pgrep查看当前正在运行的进程,并列出与stdout的选择条件匹配的进程ID。从男人那里。节点.*ecm是一个regex

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60473862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档