시작 시 실행되도록 C++ 프로그램을 어디에 두어야 합니까? [폐쇄]

시작 시 실행되도록 C++ 프로그램을 어디에 두어야 합니까? [폐쇄]

부팅 후 Ubuntu 서버가 프로그램을 시작하도록 하려고 하므로 프로그램의 실행 가능 주소를 다음 과 /etc/rc.local같이 입력합니다 space+&.

/home/m/myapp &

그러나 성공하지 못했습니다! 내 프로그램은 gtk+ 라이브러리를 사용하여 이미지를 표시하는 간단한 C++ 코드이며 수동으로 실행하면 작동합니다. 하지만 시작 시 자동으로 실행되기를 원하는데 방법을 모르시나요?

편집: 간단한 목적의 컴퓨터를 만들고 싶습니다. 실제로는 로봇이고 프로그램은 C++로 작성되었으며 실행 파일은 /home/m/myapp. 사용자 메뉴나 시스템 제어 기능이 없습니다. 따라서 전원을 켠 후 자동으로 실행되어야 합니다.

더 설명하고 싶다면 시스템은 다음과 같이 작동해야 합니다.

사용자가 시스템을 켜면 환영 이미지가 표시되고 사용자가 음성 명령을 말할 때까지 기다립니다. 그러면 음성을 인식하여 해당 음성과 관련된 이미지/동영상을 표시한 후 다시 환영 이미지를 표시하고 새로운 명령을 기다립니다.

메뉴도 없고, 로그인 페이지도 없고, 사용자가 사용할 수 있는 것도 없습니다. 위에서 말했듯이 이 시스템은 사용자 명령을 통해서만 실행됩니다!

리눅스를 처음 접하다보니 백그라운드 프로그램인지 모르겠네요? 어떻게 해야 하나요?

답변1

GTK에는 X가 필요하며 X가 없으면 프로그램에서 이미지를 표시할 수 없습니다.

로그인 관리자의 컨텍스트에서 실행하려면 로그인 관리자의 데스크탑 환경에 추가하십시오. (이것은 내가 마지막으로 우분투를 봤을 때 /var/lib/something이었습니다)

그렇지 않으면 로그인 관리자를 자동으로 장난감 세션을 여는 "nodm"과 같은 비대화형 관리자로 교체한 다음 C++ 응용 프로그램을 세션의 시작 응용 프로그램에 추가할 수 있습니다.

Openbox에서 자동으로 시작되도록 응용 프로그램을 어디에 추가했는지 잘 모르겠지만 ~/.xsession항상 작동합니다.

그런 다음 ~/.xsession파일을 만듭니다 (man 페이지 참조 ).yourapp&openbox-sessionxinit

관련 정보