sudo:passenger-memory-stats:command not found

这是我第一次设置一个服务器,并且在遵循这里描述的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 

我在其他地方接受了build议,并用which来获得乘客记忆统计的完整path。 然而,这导致了这一点:

 > 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 

任何其他方法来获得这项工作? 或者为什么会发生这种想法?

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

 $ sudo sh -c 'echo $PATH' 

这可能会产生像这样的东西:

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

如果您想要在这些目录之外运行某些内容,则需要使用完全限定的path。 如果命令尝试使用相对path运行其他内容(如示例中所示),则需要为sudo环境提供修改后的$PATH 。 喜欢这个:

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

这会在sudo环境中设置PATHvariables。 env命令对于这类事情很有用。

你可以通过这样做来保存自己的一些input:

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