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")
网友评论