运行脚本启动 davmail 时,nohup 找不到文件或目录

运行脚本启动 davmail 时,nohup 找不到文件或目录

我正在尝试在基于文本的 Ubuntu 上设置 davmail 以在服务器模式下运行,并按照说明进行操作这里,但当我尝试运行该行时

nohup davmail.sh davmail.properties &

我明白了

nohup: failed to run command 'davmail.sh': No such file or directory

脚本davmail.sh如下:

#!/bin/sh
# Ubuntu setup instructions :
# install java :
# sudo apt-get install default-jre
# launch davmail
BASE=`dirname $0`
for i in $BASE/lib/*; do export CLASSPATH=$CLASSPATH:$i; done
exec java -Xmx512M -Dsun.net.inetaddr.ttl=60 -cp $BASE/davmail.jar:$CLASSPATH davmail.DavGateway $1

我不知道它说 时指的是哪个文件No such file or directory。在我看来,一切都应该在那里。我想知道我是否缺少一些包或其他东西,或者脚本是否真的只是试图引用一些不存在的文件。我对 Linux 还很陌生,所以任何帮助都将不胜感激!这是脚本tree所在目录的:

.
├── davmail-4.8.0-2479.zip
├── davmail.jar
├── davmail.log
├── davmail.properties
├── davmail.sh
├── lib
│   ├── activation-1.1.1.jar
│   ├── commons-codec-1.3.jar
│   ├── commons-collections-3.1.jar
│   ├── commons-httpclient-3.1.jar
│   ├── commons-logging-1.0.4.jar
│   ├── htmlcleaner-2.2.jar
│   ├── jackrabbit-webdav-2.4.3.jar
│   ├── jcharset-1.3.jar
│   ├── jcifs-1.3.14.jar
│   ├── jdom-1.0.jar
│   ├── log4j-1.2.16.jar
│   ├── mail-1.4.3.jar
│   ├── slf4j-api-1.3.1.jar
│   ├── slf4j-log4j12-1.3.1.jar
│   ├── stax2-api-3.1.1.jar
│   ├── stax-api-1.0.1.jar
│   ├── woodstox-core-asl-4.1.2.jar
│   └── xercesImpl-2.8.1.jar
└── nohup.out

答案1

我从你的树列表中可以看到你“在”该树的顶级目录中(即,它是你的当前目录)1,并且它davmail.sh也在该顶级目录中。你有.(点;即当前目录)是否在您的搜索路径中?如果有,请将其删除,然后继续寻找答案。

但如果你.(点;即当前目录)在您的搜索路径中(即,如果您有正确的配置),那么您将需要执行以下操作之一:

  • 类型nohup ./davmail.sh davmail.properties &
  • 输入,或nohup /full/path/to/current/directory/davmail.sh davmail.properties &
  • 将当前目录名称(即所在目录的名称davmail.sh)放入搜索路径,

…这样nohup就会知道在哪里可以找到davmail.sh

__________
1   (我根据存在的事实得出结论nohup.out

答案2

我遇到了同样的问题。就我而言,nohup 调用了在 Windows 机器上创建的脚本。该脚本的行尾是 CR LF,而不是 LF。

直接运行脚本证明了错误(例子)。

我刚刚将 Windows 行尾 (CR LF) 更改为 Unix 行尾 (LF),它就起作用了。任何像样的文本编辑器或 IDE 都可以为您做到这一点。

相关内容