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

Я пытаюсь настроить 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 ответа

Я могу видеть из вашего списка дерева, что вы находитесь "в" каталоге верхнего уровня этого дерева (т.е. это ваш текущий каталог) 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 есть)

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

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

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

Другие вопросы по тегам