nohup не может найти файл или каталог при запуске скрипта для запуска davmail

4088
Tom

Я пытаюсь настроить davmail на текстовой основе Ubuntu для работы в режиме сервера и следую инструкциям здесь, но когда я пытаюсь запустить строку

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

2 ответа на вопрос

2
G-Man

Из листинга вашего дерева я вижу, что вы находитесь «в» каталоге верхнего уровня этого дерева (т. Е. Это ваш текущий каталог) 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есть)

1
Ric

Я столкнулся с той же проблемой. В моем случае nohup вызывал скрипт, который был создан на машине с Windows. Окончание строки сценария было CR LF вместо LF.

Запуск скрипта напрямую свидетельствовал об ошибке ( пример ).

Я только что перешел с Windows End-of-line (CR LF) на Unix End-of-line (LF), и это сработало. Любой приличный текстовый редактор или IDE может сделать это для вас.