【问题标题】:kill pid started with gem net-ssh杀死 pid 从 gem net-ssh 开始
【发布时间】:2012-08-07 17:24:54
【问题描述】:

如果你用net/ssh gem在远程服务器上启动一个命令,并且该命令处于死锁状态,如何找到远程服务器上运行的进程的pid并杀死它?

net/ssh gem 支持这个吗?

【问题讨论】:

  • 您是否需要一种方法来使用 Net::SSH gem 终止处理?
  • 是的,这很方便。我发现 ruby​​ PTY 为您提供了您启动的进程的 pid,如果它没有响应,您可以使用它来终止该进程。但是 PTY 使用起来更复杂,所以我想找到一种方法来用 Net:SSH gem 做同样的事情

标签: ruby shell net-ssh


【解决方案1】:

好吧,如果你可以ssh进入远程服务器,你可以用这个来获取进程的pid:

# Assuming the command you want to kill is a ruby program.
# If the program is something else, say sparrow mail app, you should replace
# ruby with sparrow below.
  ps -ax | grep ruby 

然后,也许:

kill -9 <pid>

【讨论】:

  • 如果您对远程机器执行 ssh 然后运行不是 ruby​​ 的命令,那将不会返回任何内容... :(
  • 我认为答案有点令人困惑。答案中的grep &lt;something&gt; 部分基本上用&lt;something&gt; 过滤命令ps -ax 的输出。所以如果它不是一个 Ruby 程序,你可以用你运行的程序的名字来替换它。
  • 如果你想使用 Net::SSH gem,我在这里写了一个小sn-p:gist.github.com/3277327。希望有效并有所帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多