Tengo un script bash en un cuadro de Linux que ejecuta un archivo Jar. Al iniciar la sesión como un usuario normal no tengo permiso para ejecutar la secuencia de comandos, pero se imprime el siguiente registro:JAVA_HOME no encontrado como Sudo
*INFO * Using JVM found at /opt/jdk6/bin/java
Cuando trato de utilizar la secuencia de comandos con sudo sin embargo, se da:
*ERROR* Unable to locate java, please make sure java is installed and JAVA_HOME set
He configurado JAVA_HOME
en la misma ruta anterior, puede verlo con echo $JAVA_HOME
&, también se establece como una opción dentro del script. Estoy contento de que el script no sea el problema, es un script de control de CQ5 predeterminado & Lo estoy usando en docenas de otros cuadros sin problema. Simplemente no estoy seguro de lo que estoy haciendo mal por encima de & supongo que es algo que me falta volver a configurar Linux?
Cuando ejecuto el comando sudo
, ¿tiene acceso al JAVA_HOME
que configuré como yo?
Cuál es la salida exacta de 'echo $ JAVA_HOME' tanto como root y como usuario normal? –
Andrew, no tengo acceso como usuario root en la máquina (no en sysadmin), solo como sudoer. Acabo de encontrar el problema aquí: http://unix.stackexchange.com/questions/6127/java-home-not-set-in-script-when-run-using-sudo Sudo estaba eliminando la variable de entorno, lo gestionó con la bandera 'sudo -E' – anotherdave
Creo que depende de la distribución - algunos sudos mantienen envs, otros no – Raz