Script de shell de Linux “no se puede acceder al archivo jar”

1 minuto de lectura

avatar de usuario de dew
Rocío

Tengo un archivo jar en el directorio raíz de un VPS debian 11. Tengo problemas para crear un script de shell de inicio.

El contenido del script (/etc/init.d/runjar.sh) es el siguiente:

#!/bin/sh

echo "Running Jar"
java -jar /root/bot.jar

exit 0

Había ejecutado “chmod +x /etc/init.d/runjar.sh” y “update-rc.d runjar.sh defaults”. Cuando reinicié el VPS, el jar no se ejecutó.

Intenté ejecutar el script a través de la terminal “sh /etc/init.d/runjar.sh” y encontré la respuesta:

root@api:~# sh /etc/init.d/runjar.sh
: not found/runjar.sh: 2:
Running Jar
Error: Unable to access jarfile /root/bot.jar
: not found/runjar.sh: 5:

Me aseguré de que los permisos se configuraron usando “chmod +x /root/bot.jar” y “chmod 777 /root” sin éxito.

Cualquier ayuda sería apreciada.

En lugar de usar sh puedes usar el service comando porque el runjar.sh se encuentra en la carpeta init.d.

  • systemctl start runjar aún arroja un error, al verificar el estado dice que no se pudo ejecutar runjar.sh

    – Rocío

    10 de febrero a las 7:25

avatar de usuario de lemoana
lemoana

1. ejecutar un nuevo script para una prueba

echo -e '#!/bin/sh\necho "Running Jar"\ndate && echo "successful"' > /etc/init.d/runjar.sh

sh /etc/init.d/runjar.sh

si la información de salida es exitosa, entonces demostró que el entorno de shell está bien

2. reescribe tu guión

echo -e '#!/bin/sh\necho "Running Jar"\njava -jar /root/bot.jar\nexit 0' > /etc/init.d/runjar.sh

chmod +x /etc/init.d/runjar.sh

sh /etc/init.d/runjar.sh

y verifique la información de salida.

¿Ha sido útil esta solución?