我在这里看到很多关于kill命令的讨论。但我的困惑是不同的。我有许多具有相同名称的进程,我必须自动执行查杀。因此我无法使用pid。那么,如果我转到特定路径并使用kill <pname>
,那么只有与该路径相关的进程才会被杀死吗?
或者有没有办法在kill命令中包含路径名?
答案 0 :(得分:3)
您可以随时使用pkill命令并检查某些正则表达式,而不是使用pid。如果传递-f标志,它允许您检查整个命令行而不仅仅是进程名称。
这样的事情很可能会成功:
pkill -TERM -u username -f "mwhome.*weblogic\\.NodeManager"
-f是您传递正则表达式的地方 -u也很有用,因此您只会影响作为特定用户运行的pid
答案 1 :(得分:1)
不,但是当你使用
开始这个过程时yourcommand & echo $!
或将其包装在一个小脚本中
#!/bin/bash
yourcommand &
echo $! >/path/to/pid.file
你可以保存pid。然后用这个pid杀死进程。这是如何管理流程的常规方法。如果你查看nginx的普通init.d脚本,他们会以同样的方式执行。只需将pid保存在文件中,然后停止只读取pid并终止进程。