Eri*_*ric 13 process kill search
在我的 bash 脚本使用 selenium 服务器完成后,脚本会像这样杀死它:
kill `ps -ef | grep selenium | awk '{ print $2 }'`
Run Code Online (Sandbox Code Playgroud)
虽然这有效并且它确实杀死了 selenium 脚本,但它也尝试grep selenium
终止进程,因此当进程号返回到 kill 命令时,进程已经消失,因此最终生成错误消息。(换句话说:它最终杀死了两个进程,其中一个是真正的 selenium 服务器,另一个是一个短暂的进程,它是我执行此命令的方式的副作用。)
有没有更优雅的方式来终止进程,没有这种意外的副作用?
(FWIW 我有一个想法:这个相同的脚本在脚本的早期启动了 selenium,所以也许如果有一种方法可以在我启动 selenium 时捕获 PID,我可以保留它并直接杀死它,而不是 grepping for进程 ID。问题是,我不知道如何获取该 PID、如何使用变量来保留它以及如何在脚本中稍后引用它。但这是更好的方法吗?)
mil*_*013 20
尝试该pgrep
命令,它将输出您感兴趣的命令的 PID。
pgrep selenium
Run Code Online (Sandbox Code Playgroud)
要实际终止进程,请使用配套pkill
命令。
pkill selenium
Run Code Online (Sandbox Code Playgroud)
Mom*_*omo 13
尝试使用,pkill selenium
如果此方法或其他方法都不起作用,您可以继续将您的方法与另一个管道序列一起使用,例如
kill `ps -ef|grep -i selenium| grep -v grep| awk '{print $2}'`
Run Code Online (Sandbox Code Playgroud)
尝试使用grep [s]elenium
. 这样就找不到grep进程了。