nohup não pode encontrar o arquivo ou diretório ao executar o script para iniciar o davmail

2

Estou tentando configurar o davmail no Ubuntu baseado em texto para ser executado no modo de servidor e estou seguindo as instruções aqui , mas quando eu tento executar a linha

nohup davmail.sh davmail.properties &

Eu recebo a mensagem

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

O script davmail.sh é o seguinte:

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

Não sei a qual arquivo está se referindo quando diz No such file or directory . Parece-me que tudo deveria estar lá. Eu estou querendo saber se estou perdendo algum pacote ou algo assim, ou se o script realmente está apenas tentando referenciar algum arquivo que não está lá. Eu sou muito novo no Linux, então qualquer ajuda aqui seria muito apreciada! Aqui está o tree do diretório em que o script reside:

.
├── 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
    
por Tom 17.06.2017 / 23:36

2 respostas

2

Eu posso ver na sua lista de árvores que você está "in" o diretório de nível superior dessa árvore (ou seja, é o seu diretório atual) 1 , e que davmail.sh também está nesse diretório de nível superior. Você tem . (ponto; isto é, o diretório atual) em seu caminho de pesquisa? Se fizer isso, retire-o e continue procurando uma resposta.

Mas se você não tiver . (ponto; por exemplo, o diretório atual) no seu caminho de pesquisa (ou seja, se você tiver uma configuração adequada), então você precisará seguir um destes procedimentos:

  • Digite nohup ./davmail.sh davmail.properties &
  • Digite nohup /full/path/to/current/directory/davmail.sh davmail.properties & ou
  • Coloque o nome do diretório atual (ou seja, o nome do diretório em que davmail.sh é) em seu caminho de pesquisa,

… então nohup saberá onde encontrar davmail.sh .

por 17.06.2017 / 23:57
1

Eu encontrei o mesmo problema. No meu caso, nohup estava chamando um script que foi criado em uma máquina windows. Os finais de linha do script eram CR LF em vez de LF.

A execução do script evidenciou diretamente o erro ( exemplo ).

Acabei de mudar do Windows End-of-lines (CR LF) para o Unix End-of-lines (LF) e funcionou. Qualquer editor de texto decente ou IDE pode fazer isso por você.

    
por 04.12.2017 / 17:26