我在rake任务中加入了一个收割者队列,以杀死一些额外生成的ruby任务,因为它们有时会以某种方式爬行.

system "ps aux | grep 'namespace:taskname' | grep ruby | grep -v grep | awk '{print $2}' | xargs kill -9; echo 'Reaped old namespace:taskname processes.'"

我想在其中添加grep -v $PID_OF_CURRENT_TASK个,以确保我不会终止当前正在运行的任务.

我怎么得到那个PID?

推荐答案

在Ruby中,当前PID为Process.pid

Ruby相关问答推荐

Ruby PKCS7:添加;\r〃;字节正在 destruct 解密

Windows powershell文件类型编码中Ruby IO流的原因是什么

Ruby - 获取正在执行的文件

当没有传入块时,是否有更好的方法来防止屈服?

为什么 Range 在下降时不起作用?

Rails 类 << self

如何从正在运行的脚本进入 IRB 提示符?

Ruby 中的发送方法

Ruby 中数组和哈希的性能

Ruby:获取不带扩展名的文件名

try 学习/理解 Ruby 的 setter 和 getter 方法

我不明白Ruby本地范围(local scope)

. vs ::(点与双冒号)用于调用方法

如何让 Ruby 1.9 成为 Ubuntu 上的默认 Ruby?

为什么 Ruby 无法验证 SSL 证书?

Ruby 1.9 哈希,键中有破折号

判断字符串是否为空的Ruby方法?

使用 RSpec 判断某物是否是另一个对象的实例

如何在 gemspec 中指定最低 Ruby 版本?

检索/列出 Redis 数据库中的所有键/值对