nohup ./startup&没有权限

时间:2014-04-01 19:51:34

标签: c++ compilation nohup

我成功编译了一个MUD源代码,它在使用

启动服务器的说明中说
nohup ./startup &

虽然当我这样做时它给了我这个错误:

$ nohup: ignoring input and appending output to `nohup.out'
nohup: failed to run command `./startup': Permission denied

我已经在互联网上找到了答案。其中一些人说将我的cygwin目录放在根文件夹中(我使用的是Windows 7),其目录是C:\ cygwin

所以这不是问题..任何人都可以帮我这个吗??

3 个答案:

答案 0 :(得分:0)

来自" man nohup":

  

如果标准输出是终端,则由命名的所有输出写入   其标准输出的效用应附加到其末尾   在当前目录中输入nohup.out。如果nohup.out不能   创建或打开以进行追加,输出应附加到   在HOME指定的目录中,文件nohup.out的结尾   环境变量。如果两个文件都不能创建或打开   附加,实用程序不得援引。如果创建了文件,则   文件的权限位应设置为S_IRUSR | S_IWUSR。

我的猜测是因为" sh -c"没有启动登录shell,它继承了调用shell的环境,包括HOME环境变量,并试图在那里打开它。所以我会检查你当前目录和$HOME的权限。您可以尝试在当前目录中touch test.txt$HOME查看是否可以执行该命令。

答案 1 :(得分:0)

正如staticx所写,检查目录(和用户)的权限 - 以及可执行文件。

而不是使用nohup

  • 检查是否需要nohup,尝试./startup </dev/null >mud.out 2>mud.err &,然后关闭终端窗口并检查它是否正在运行
  • 或者只是在./startup会话中运行screen并将其分离(<ctrl>+<a>,<d>

答案 2 :(得分:0)

尝试chmod +x startup,也许您的startup文件无法执行。