Seu script não contém nenhum comando para definir o diretório atual, portanto ele é executado no mesmo diretório do processo que o invocou. Quando executado a partir de rc.local
, executado a partir de init
, o diretório atual é o diretório raiz /
.
Adicione cd /direc/tory/
ao seu script. A propósito, note que é #!/bin/sh
( #!bin/sh
funciona aqui apenas porque você está executando seu script a partir do diretório raiz; é uma péssima idéia confiar nisso.)
#!/bin/sh
set -e
cd /direc/tory
wget "http://somesite.org/someJava.jar" -O someJavaFile.jar
java -d64 -Xincgc -Xmx512M -jar someJavaFile.jar
Também adicionei set -e
no script. Isso faz com que pare se um dos comandos falhar. Por exemplo, se wget
não puder fazer o download do jar, então java
não será executado.