ruby中执行shell命令找到进程并kill掉

Posted Still_Walking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby中执行shell命令找到进程并kill掉相关的知识,希望对你有一定的参考价值。

shell命令获得进程id的方法有三种:

1.
ps -A |grep cmdname| awk ‘{print $1}‘

2.

 pidof cmdname

3.

pgrep cmdname

ruby中怎么做呢?

ruby中有三种方式执行shell命令:

%x: 执行命令并返回执行结果

exec:执行命令并退出。

system:执行命令并返回true或false。

所以这里要使用%x来取得返回结果。

 比如要killsublime:

result = %x[pgrep sublime]

%x[sudo kill -9 #{result}]

当然用一行命令也可以:
system("ps -ef | grep sublime | grep -v grep | awk ‘{print $2}‘ | xargs -n1 kill -9")

以上是关于ruby中执行shell命令找到进程并kill掉的主要内容,如果未能解决你的问题,请参考以下文章

linux 下写 shell kill掉运行时间超过5分钟的PHP进程

shell 脚本检测当前脚本已在执行则kill

kill 进程时遇到的一件有意思的事情

shell脚本执行kill命令后自动停止的问题

shell 判断PID是不是存在,存在则kill掉,不存在则跳过

批量kill java进程方法-引出子shell和反引用