Exec 및 Terminal=True인 .desktop 파일: 응용 프로그램이 종료될 때 터미널이 일시적으로 닫히지 않도록 하시겠습니까?

Exec 및 Terminal=True인 .desktop 파일: 응용 프로그램이 종료될 때 터미널이 일시적으로 닫히지 않도록 하시겠습니까?

다음과 같이 .desktop 파일에서 호출하는 Python 터미널 애플리케이션이 있습니다.

[Desktop Entry]
Version=1.0
Name=My App
Exec=python3 /home/pi/my_app.py
Terminal=true
Type=Application
Categories=Application;

내가 원하는 대로 작동합니다. 바탕 화면 바로 가기를 두 번 클릭하면 터미널이 시작되고 애플리케이션이 실행되며 작업이 완료되면 터미널도 닫힙니다.

그러나 최근에는 Python 응용 프로그램을 강제로 닫는 몇 가지 오류/예외가 발생하기 시작했습니다. 이로 인해 터미널도 닫히기 때문에 오류 메시지를 읽을 수 없습니다.

그래서 나는 다음과 같은 것을 시도했습니다.

[Desktop Entry]
Version=1.0
Name=My App
Exec=python3 /home/pi/my_app.py ; read -p "press"
Terminal=true
Type=Application
Categories=Application;

...하지만 Exec 매개변수에 직접 있고 명시적으로 호출되지 않기 때문에 bash해당 read ..부분은 Python 프로그램에 대한 명령줄 인수로 해석되고 이제 프로그램이 즉시 충돌하여 터미널을 닫습니다(그러나 적어도 이것을 반복하는 것이 더 쉬울 것입니다) , 그리고 명령줄 인수와 관련하여 Python에서 오류 메시지가 나온다는 것을 인식하세요.

bash이 애플리케이션을 터미널에서 직접 실행할 때 오류를 재현할 수 없다는 것을 알았기 때문에 .desktop 파일에 호출을 추가하고 싶지 않습니다(분명히 오류는 Display를 실행할 때만 어떤 방식으로든 발생합니다) . .desktop 파일을 두 번 클릭합니다.)

그렇다면 터미널에서 .desktop 바로가기를 통해 이 애플리케이션을 실행하고 오류 메시지를 읽을 수 있도록 애플리케이션이 종료될 때 터미널 창을 닫지 않고 무엇을 더 할 수 있습니까?

답변1

Gnome 터미널에는 아래와 같이 명령이 종료될 때 터미널을 열어 두는 옵션이 있습니다. 충돌 후에도 오류를 볼 수 있도록 설정을 열어 두어야 합니다. 다른 터미널에도 비슷한 옵션이 있을 수 있습니다.

터미널을 열어두는 옵션을 보여주는 스크린샷

Gnome 터미널이 기본 터미널이 아닌 경우(필요한 경우 설치했다고 가정) 파일에서 명시적으로 호출하여 .desktopPython 애플리케이션을 실행할 수 있습니다.

[Desktop Entry]
Version=1.0
Name=My App
Exec=gnome-terminal --command 'python3 /home/pi/my_app.py'
Terminal=false
Type=Application
Categories=Application;

이 옵션은 실행을 원하지 않으므로 Terminal로 설정되어 있습니다.falsegnome-terminal 존재하다터미널.

종료 동작 옵션은 프로필별로 있으므로 종료 시 터미널이 열려 있도록 하고 옵션을 Exec아래와 같이 변경하여 사용을 지정하는 경우에만 적용되는 프로필(예: "열린 상태 유지")을 생성할 수 있습니다. 이 구성 파일 :

Exec=gnome-terminal --profile='Hold Open' --command 'python3 /home/pi/my_app.py'

어떤 이유로 Gnome Terminal의 명령줄 인수는 GUI 액세스 가능 도움말 문서에 문서화되어 있지 않습니다. 전체 목록을 보려면 를 실행하세요 gnome-terminal --help-all.

답변2

더 간단한 솔루션:

Exec=bash -c "python3 /home/pi/my_app.py ; read -p press"

관련 정보