web-dev-qa-db-ja.com

novupは、davmailを開始するスクリプトを実行するときにファイルまたはディレクトリを見つけることができません

テキストベースの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
2
Tom

ツリーリストから、そのツリーの最上位ディレクトリ(つまり、現在のディレクトリ)に「いる」ことがわかります。1、およびそのdavmail.shもその最上位ディレクトリにあります。検索パスに.(ドット、つまり現在のディレクトリ)がありますか?もしそうなら、それを取り出して、答えを探し続けてください。

しかし、もしあなたがしない持っているなら.(dot;すなわち、検索パス(つまり、適切な構成がある場合)で(現在のディレクトリ)、次のいずれかを実行する必要があります。

  • タイプNohup ./davmail.sh davmail.properties &
  • Nohup /full/path/to/current/directory/davmail.sh davmail.properties &と入力するか、
  • 現在のディレクトリ名(つまり、davmail.shが存在するディレクトリの名前)を検索パスに入力します。

…したがって、Nohupdavmail.shの場所を認識します。

__________
1(私はNohup.outが存在するという事実からそれを結論します)

私は同じ問題に遭遇しました。私の場合、NohupはWindowsマシンで作成されたスクリプトを呼び出していました。スクリプトの行末は、LFではなくCR LF)でした。

スクリプトを実行すると、エラーが直接証明されました( )。

Windowsの行末(CR LF)からUnixの行末(LF)に変更したところ、うまくいきました。まともなテキストエディタまたはIDEはあなたのためにそれを行うことができます。

1
Ric