nohup no puede encontrar el archivo o directorio cuando ejecuta el script para iniciar davmail

2

Estoy tratando de configurar davmail en Ubuntu basado en texto para que se ejecute en modo servidor y sigo las instrucciones aquí , pero cuando intento ejecutar la línea

nohup davmail.sh davmail.properties &

entiendo el mensaje

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

El davmail.shguión es el siguiente:

#!/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 sé a qué archivo (s) se refiere cuando dice No such file or directory. Me parece que todo debería estar allí. Me pregunto si me falta algún paquete o algo, o si el script realmente está tratando de hacer referencia a algún archivo que no está allí. Soy bastante nuevo en Linux, por lo que cualquier ayuda aquí sería muy apreciada. Aquí está el treedirectorio en el que reside el script:

.
├── 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
Tom
fuente

Respuestas:

3

Puedo ver en su lista de árbol que usted está "en" el directorio de nivel superior de ese árbol (es decir, es su directorio actual) 1 , y que davmail.shtambién está en ese directorio de nivel superior. ¿Tiene .(punto; es decir, el directorio actual) en su ruta de búsqueda? Si lo haces, sácalo y sigue buscando una respuesta.

Pero si no tiene .(punto; es decir, el directorio actual) en su ruta de búsqueda (es decir, si tiene una configuración adecuada), deberá realizar una de las siguientes acciones:

  • Tipo nohup ./davmail.sh davmail.properties &
  • Escriba onohup /full/path/to/current/directory/davmail.sh davmail.properties &
  • Ponga el nombre del directorio actual (es decir, el nombre del directorio donde davmail.shestá) en su ruta de búsqueda,

... así nohupsabré dónde encontrar davmail.sh.

__________
1   (concluyo que por el hecho de que nohup.outestá allí)

G-Man
fuente
1

Tuve el mismo problema. En mi caso, nohup estaba llamando a un script que se creó en una máquina con Windows. Las terminaciones de línea del script fueron CR LF en lugar de LF.

Ejecutar el script directamente evidencia el error ( ejemplo ).

Acabo de cambiar de Windows End-of-lines (CR LF) a Unix End-of-lines (LF) y funcionó. Cualquier editor de texto decente o IDE puede hacerlo por usted.

Ric
fuente