我使用调度程序(Rufus调度程序)每分钟启动一个名为“ ar_sendmail”的过程(来自ARmailer)。

当已经有这样的进程正在运行时,不应启动该进程,以免耗尽内存。

如何检查此过程是否已在运行?下面的unless之后会怎样?

scheduler = Rufus::Scheduler.start_new

  scheduler.every '1m' do

    unless #[what goes here?]
      fork { exec "ar_sendmail -o" }
      Process.wait
    end

  end

end

最佳答案

unless `ps aux | grep ar_sendmai[l]` != ""

10-08 04:27