"pkexec"를 사용하여 .jar 파일을 열고 데스크톱 항목을 사용하여 명령을 실행합니다.

"pkexec"를 사용하여 .jar 파일을 열고 데스크톱 항목을 사용하여 명령을 실행합니다.

설치를 자동화하기 위해 bash 스크립트를 작성 중입니다.TLauncher(마인크래프트 런처)Lubuntu 18.04를 실행하는 USB의 기본 종속성 관리.

아래 bash 스크립트의 일부는 /usr/share/applicationsLubuntu 메뉴에서 쉽게 부팅할 수 있는 데스크탑 항목을 생성합니다.

이것은 내가 사용하는 항목입니다.

[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

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar터미널에서 명령을 실행하면 작동하고 TLauncher가 실행됩니다. 그런데 데스크탑 항목에 명령을 넣으면 뭔가 빠진 듯한 느낌이 듭니다.

Lubuntu 메뉴에서 항목을 열려고 하면 커서에 무언가 로드 중이라는 메시지가 표시되지만 아무리 기다려도 아무 일도 일어나지 않습니다. 또한 데스크탑 항목을 디버깅하는 방법도 잘 모르겠습니다. 입력을 시도했지만 xdg-open터미널에 출력이 없고 아무 일도 일어나지 않았습니다. 즉, TLauncher가 시작되지 않았습니다.

다음과 같이 별도의 bash 파일에 명령을 넣어 보았습니다.

#!/bin/bash

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

터미널에서 실행하면 bash testscript.shTLauncher가 실행됩니다.

그러나 데스크탑 항목에 넣으면 exec위 항목의 항목을 다음과 같이 대체합니다.

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

이것은 작동하지 않습니다.

쉘 스크립트에는 적절한 권한이 있습니다.

exec데스크톱 항목에 잘못된 값을 썼거나 pkexec데스크톱 항목이 내가 작동시키려는 방식대로 작동하지 않아야 한다고 생각합니다.

메뉴를 통해 데스크탑 항목에서 TLauncher를 실행하고 명령을 root.

편집하다:

대신 전체 경로를 사용하면 ~동일한 결과가 생성됩니다. 즉, 작동하지 않고 위의 문제가 지속됩니다.

설정 Terminal=true으로는 이 문제가 해결되지 않습니다.

답변1

현재 해결 방법: 명령은 터미널에서 실행될 때 작동하므로 데스크톱 항목에서 터미널을 사용하여 명령을 실행하도록 하세요.

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"

노트:

ps aux나는 이것을 기반으로 런처가 닫힐 때 실제로 닫히도록 할 수 있다고 생각했습니다 . 프로세스가 실제로 예상한 대로 종료되지 않고 다음에 런처를 열 때 이상한 현상이 발생한다는 것을 알았기 때문입니다. .

관련 정보