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 может сделать это для вас.