3 votos

Abrir archivos .jar con `pkexec` y usar Entradas de escritorio para ejecutar comandos

Estoy escribiendo un bash script que automatiza la instalación de TLauncher (Minecraft launcher) y básica gestión de la dependencia en USBs ejecución de Lubuntu 18.04.

Parte de la secuencia de comandos bash crea una entrada de escritorio de bajo /usr/share/applications para facilitar el lanzamiento de la Lubuntu menú.

Aquí está la entrada que estoy usando:

[Desktop Entry]
Encoding=UTF-8
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar
Icon=~/.minecraft/icons/default.png
Type=Application
Terminal=false
Name=Minecraft
GenericName=minecraft
StartupNotify=false
Categories=Game

El comando pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar trabaja y no abre TLauncher si se ejecuta en el terminal. Sin embargo, siento que me falta algo cuando pongo el comando en el Escritorio de la Entrada.

Cuando intento abrir la entrada de la Lubuntu menú, el cursor muestra de que algo se está cargando, pero luego no pasa nada no importa cuánto tiempo debo esperar. No estoy seguro de cómo depurar el Escritorio de la entrada. He intentadoxdg-open de la entrada, pero no tengo salida en el terminal y no pasó nada bien -me.e, TLauncher no se ha lanzado.

He intentado poner el comando separado en un archivo bash que parece:

#!/bin/bash

pkexec env DISPLAY=:0 XAUTHORITY=/home/me/.Xauthority /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar

De la ejecución que en la terminal bash testscript.sh trabaja y no abre TLauncher.

Pero cuando la pongo en el escritorio de la entrada de la sustitución de la exec de la entrada anterior de este modo:

Exec=/bin/bash /path/to/testscript.sh

No funciona.

Los scripts de shell tienen los permisos adecuados.

Me siento como que estoy escribiendo el Escritorio de la Entrada exec valor incorrecto o que pkexec no se supone que el trabajo de una Entrada de Escritorio de la manera en que yo estoy tratando de hacer que funcione.

Me gustaría ser capaz de lanzar TLauncher de un escritorio a través de la entrada del menú y tiene una interfaz gráfica de usuario ventana emergente pidiendo la contraseña para tener el comando ejecutar como root.

Editar:

El uso de rutas de acceso completas en lugar de ~ también se obtiene el mismo resultado que yo.e, no funciona y por encima de la permanencia de los problemas.

Configuración de Terminal=true no se soluciona esto para mí.

2voto

solidwaffle Puntos 36

Solución actual: dado que el comando funciona cuando se ejecuta en el terminal, simplemente haga que Desktop Entry ejecute el comando con un terminal:

 Exec=lxterminal -e "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel /home/me/.minecraft/tlauncher.jar"
 

Notas:

Creo que podría construir a partir de esto para asegurarme de que cuando el iniciador esté cerrado, en realidad esté cerrado, ya que noté a través de ps aux que los procesos en realidad no se están matando de la forma en que espero causar un comportamiento extraño la próxima vez vez que abro el lanzador.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X