2

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .