sudo:passenger-memory-stats:未找到命令

sudo:passenger-memory-stats:未找到命令

这是我第一次设置服务器,在按照 Phusion Passenger 教程进行操作时遇到了障碍这里。说明要求我运行此命令:

passenger-memory-stats

这会导致此错误:

*** WARNING: Please run this tool as root. Otherwise the private dirty RSS of processes cannot be determined.

但是当我跑步时:

sudo passenger-memory-stats

我收到此错误:

sudo: passenger-memory-stats: command not found

我听从了其他地方的建议,并which获取了乘客记忆统计的完整路径。然而,这导致了这样的结果:

> sudo /home/timothythehuman/.rvm/gems/ruby-2.0.0-p0/bin/passenger-memory-stats

/usr/bin/env: ruby_noexec_wrapper: No such file or directory

还有其他方法可以完成这项工作吗?或者知道为什么会发生这种情况吗?

答案1

sudo出于安全原因,默认情况下会清理您的$PATH。您可以通过运行以下命令查看路径:

$ sudo sh -c 'echo $PATH'

这可能会产生类似这样的结果:

/sbin:/bin:/usr/sbin:/usr/bin

如果你想运行这些目录之外的程序,你需要使用完全限定路径。如果命令尝试使用相对路径运行其他命令(如您的示例所示),那么您需要为环境提供sudo修改后的$PATH。如下所示:

sudo env PATH=$PATH /home/timothythehuman/.rvm/gems/ruby-2.0.0-p0/bin/passenger-memory-stats

这会PATHsudo环境中设置变量。此env命令对于此类事情很有用。

你可以通过这样做来节省一些打字时间:

sudo env PATH=$PATH `which passenger-memory-stats`

相关内容