我正在尝试在基于文本的 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 都可以为您做到这一点。