糟糕的解释器:文本文件繁忙

糟糕的解释器:文本文件繁忙

长期以来,我已经习惯在“vi”中编辑 Perl CGI 脚本,同时打开浏览器来测试它们。最近,当我这样做时,我收到“500”服务器错误,当我从 shell 运行脚本时,我收到“错误的解释器:文本文件繁忙”的错误。唯一的解决方案是每当我想测试脚本时退出“vi”,这非常麻烦,而且应该完全没有必要。这是怎么回事?我正在运行 Debian 服务器,我会定期更新它,我假设它是从一些所谓的“升级”开始的 :)

答案1

你似乎有这个问题,这是因为在某些时候nvi开始打开文件O_RDWR而不是O_RDONLY

如果vi事实上 是 的nvi, 我 想 尝试 使用 不同 的vi, 比如说vim.

答案2

这很奇怪。你是在尝试刷新之前写入的吗?

另外,您可以在文件打开时对其进行“cat”吗?

答案3

我们在编辑 CGI 时遇到了这个问题......

#! 解释器行以某种方式获得 Ctrl-M,
导致找不到可执行文件。

它看起来像一个 perl 错误,但实际上是“she-bang”解释器行在末尾有“几乎”不可见的字符。

在我们的案例中,我们在文件写入后发现了这一点。尝试使用 dos2unix 命令复制到另一个名称并尝试点击它。如果它有效,你就找到了根本原因。

遗憾的是,我没有真正的解决办法,除了看到问题时认识到它。

--编辑-- 我们的错误信息通常是:脚本名称:未找到文件,而不是问题中提到的“文件忙”。

相关内容