nohup 错误没有这样的文件或目录

Posted

技术标签:

【中文标题】nohup 错误没有这样的文件或目录【英文标题】:nohup error no such file or directory 【发布时间】:2012-04-28 22:41:50 【问题描述】:

我正在尝试运行一串nohup 命令来获取服务器统计信息。 但是我得到一个错误 '没有这样的文件或目录'。请注意,3 个nohup 调用嵌入在通过cron 作业执行的脚本中。第一个 nohup 有效,但另外两个返回错误。具有讽刺意味的是,当在不同的服务器上运行时,脚本运行良好。

命令

nohup vmpstat -a -n 60 1000 > myvmstats

(作品)

nohup mpstat -P ALL 1 1000 > mympstats

(返回:nohup 无法运行命令mpstat:没有那个文件或目录)

nohup iostat -t -x 60 1000 >myiostats

(返回:nohup 无法运行命令iostat:没有这样的文件或目录)

知道有什么问题吗?

【问题讨论】:

mpstat 或 iostat 是别名吗?你能自己运行命令吗? 在 cron 下运行时遇到问题;当 cron 运行时,PATH 上的“缺失”命令是什么? 我可以自己运行命令。我基本上在具有相同设置的 2 台不同服务器上拥有相同的脚本。我使用 cron 只是为了触发脚本。事实上,我只是尝试自己运行脚本并且它正在工作。我想知道它是否与在 cron 内运行有关 在 cron-run 脚本中添加一个命令行/行:env > /tmp/cron.job。检查那里的 PATH 是否包含您期望的内容,特别是它是否包含安装三个程序的目录(目录)。并检查您是否从命令行运行了您期望的程序:which vmpstat mpstat iostat。当您的脚本由cron 运行时,这两个“缺失”命令不在PATH 上的目录中,这是一个合理的猜测。而cron 为您提供了一个极简环境;在这方面它与at 完全不同。 谢谢乔纳森!!!事实证明,包括 mpstat 安装的整个路径都有效。尽管我觉得第二台服务器上的相同设置在不包括整个路径的情况下工作很奇怪。无论如何,现在一切都很好>再次感谢\ 【参考方案1】:

从命令行运行而不是由cron 运行的脚本的常见问题是“环境”。有很多关于 SO 的问题都可以举例说明,包括:

Perl script works but not when via cron Why does my command line not run from cron? Bash script not executing in cron correctly How can I set environment variables that crontab will use?

出于调试目的,在 cron-run 脚本中添加一个命令行/行:

env > /tmp/cron.job

查看那里的 PATH 是否包含您期望的内容,特别是它是否包含安装三个程序的目录(目录)。并检查您是否从命令行运行了您期望的程序:

which vmpstat mpstat iostat

当您的脚本由cron 运行时,这两个“缺失”命令不在PATH 上的目录中是合理的猜测。而cron 为您提供了一个极简环境;在这方面它与at 完全不同。

另见:

Crontab and testing a command to be executed How do I add pre-hook and post-hook scripts that run before all of my cron jobs?

【讨论】:

【参考方案2】:

我认为你应该给出你程序的相对/绝对路径

例如:

nohup ./****.sh > /home/user/test.txt

【讨论】:

以上是关于nohup 错误没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

LINUX 标准错误输出重定向

Linux之nohup命令

clang:错误:没有这样的文件或目录:'dynamic_lookup' clang:错误:没有这样的文件或目录:'suppress'

纱线安装命令错误没有这样的文件或目录:'安装'

运行 Solidity 合约导致“ENOENT:没有这样的文件或目录”错误

Nodejs FS模块没有返回这样的文件或目录错误