nohup kann keine Datei oder Verzeichnis finden, wenn ein Skript zum Starten von Davmail ausgeführt wird

4186
Tom

Ich versuche, davmail auf textbasiertem Ubuntu so einzurichten, dass es im Server-Modus läuft, und folge den Anweisungen hier, aber wenn ich versuche, die Zeile auszuführen

nohup davmail.sh davmail.properties & 

Ich bekomme die Nachricht

nohup: failed to run command 'davmail.sh': No such file or directory 

Das davmail.shSkript lautet wie folgt:

#!/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 

Ich weiß nicht, auf welche Datei (en) es sich bezieht, wenn es sagt No such file or directory. Es scheint mir, dass alles da sein sollte. Ich frage mich, ob mir ein Paket oder etwas fehlt, oder ob das Skript wirklich versucht, auf eine Datei zu verweisen, die nicht vorhanden ist. Ich bin relativ neu in Linux, daher wäre jede Hilfe hier sehr dankbar! Hier ist das treeVerzeichnis, in dem sich das Skript befindet:

. ├── 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 Antworten auf die Frage

2
G-Man

Ich kann aus Ihrer Baumliste sehen, dass Sie sich im obersten Verzeichnis dieses Baums befinden (dh es ist Ihr aktuelles Verzeichnis) 1 und davmail.shsich auch in diesem obersten Verzeichnis befindet. Haben Sie .(Punkt; dh das aktuelle Verzeichnis) in Ihrem Suchpfad? Nehmen Sie es heraus und suchen Sie weiter nach einer Antwort.

Aber wenn Sie nicht haben .(Punkt, dh das aktuelle Verzeichnis) im Suchpfad (dh wenn Sie eine richtige Konfiguration haben), dann müssen Sie eine der folgenden Funktionen ausführen :

  • Art nohup ./davmail.sh davmail.properties &
  • Typ odernohup /full/path/to/current/directory/davmail.sh davmail.properties &
  • Geben Sie den aktuellen Verzeichnisnamen (dh den Namen des Verzeichnisses, in dem sich das Verzeichnis davmail.shbefindet) in Ihren Suchpfad ein.

nohupAlso wissen, wo es zu finden ist davmail.sh.

__________
1 (Ich schließe daraus, dass nohup.outes da ist)

1
Ric

Ich bin auf das gleiche Problem gestoßen. In meinem Fall ruft nohup ein Skript auf, das auf einem Windows-Computer erstellt wurde. Die Zeilenenden des Skripts lauteten CR LF anstelle von LF.

Beim Ausführen des Skripts wurde der Fehler direkt nachgewiesen ( Beispiel ).

Ich habe gerade von Windows End-of-Line (CR LF) zu Unix-End-of-Line (LF) gewechselt und es hat funktioniert. Jeder anständige Texteditor oder IDE kann das für Sie tun.