2017-09-25 1 views
-2

나는 리눅스를 실행하고 있는데, 특히 프로젝트의 첫 번째는 rf 스펙트럼을, 두 번째 파일은 프리앰블을, 세 번째 파일은 최적의 주파수로 데이터를 보낸다. 이것은 모든 chmod + x 인 python과 sh 파일의 혼합을 통해 이루어집니다.리눅스의 데스크톱 아이콘

[Desktop Entry] 
Version=1.0 
Type=Application 
Name=helloworld 
Comment= 
Exec=./test.py 
Icon= 
Path=/home/xxx/Desktop 
Terminal=true 
StartupNotify=false 

지금 시작하면 : 나는 그러나, CLI를 통해 첫 번째 파일을 실행하면 모든 절차가 잘 작동

는, 지금 아래에 사용 및 이와 유사한 시위의 편의를 위해 바탕 화면 아이콘을 만들 시도 이 프로세스는 바탕 화면 아이콘을 사용하여 첫 번째 파이썬 파일을 열 것입니다. 모든 링크가 남아 있지만 실행되지 않습니다. 내가 누락되었을 수있는 중요한 것이 있습니까?

답변

0

저는 이것이 .desktop 파일의 다소 비 재래적인 사용이라고 생각합니다. 일반적으로 실행 파일의 절대 경로 또는 $ PATH가 찾길 바라는 이름만을 지정합니다. 데스크톱 아이콘을 호출하면 특정 작업 디렉토리가 설정된다는 보장이 없다고 생각합니다. 따라서 응용 프로그램의 다양한 비트가 서로를 찾을 수 없다고 생각합니다.

Linux에서 이와 같은 문제를 해결하는 일반적인 방법은 한 응용 프로그램이 다른 응용 프로그램을 호출해야 할 때 모든 부품이 $ PATH에 있는지 확인하는 것입니다. 흔히 비실용적이기 때문에 일반적인 접근 방법은 첫 번째 응용 프로그램이/proc/self/exe에서 readlink()를 사용하여 파일 시스템 위치를 찾은 다음 나머지 비트가있는 곳을 찾아내는 것입니다. 일반적으로 같은 디렉토리에 있습니다. 따라서 첫 번째 실행 파일의 전체 경로의 파일 이름 부분을 제거하고 새 파일 이름을 대체하여 절대 경로를 찾습니다.

동일한 작업을 수행하는 비슷한 방법이 있지만 모두 올바른 경로를 사용하여 작업해야합니다. 올바른 작업을 수행하기 위해 데스크톱에 의존하는 것이 좋습니다. 데스크탑이 때로는 올바른 일을 할 수도 있지만 휴대용이 아닙니다.