저는 Debian(Wheezy)의 LXDE 데스크톱 세션에서 애플리케이션을 완료하고 실행하는 방법을 알아내려고 노력해 왔습니다. 단일 C# 애플리케이션입니다. 내 스크립트는 매우 간단합니다
mono /home/myapp/myapp.exe
그런 다음 이 스크립트를 init.d에 추가했고 거기에서 update-rc.d가 myapp를 추가했습니다. 반환되기 때문에 작동하지 않습니다.
(myapp:4820): Gtk-WARNING **: cannot open display:
분명히 모든 것이 아직 GTK 애플리케이션과 작동하도록 설정되지 않았습니다. 그래서 모든 것이 설정된 후에 애플리케이션을 시작하고 싶습니다. 또한 다음 줄을 추가하여 crontab(-e)에 추가해 보았습니다.
@reboot /etc/init.d/myapp.sh
나도 추가했다
#! /bin/sh
### BEGIN INIT INFO
# Provides: beheertool
# Should-Start: console-screen dbus network-manager
# Required-Start: $all
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start beheertool
### END INIT INFO
#
원본 스크립트의 경우 나중에 시작하도록 할 수도 있습니다("Required-start:$all" 부분 사용).
이러한 작업 중 어느 것도 도움이 되지 않습니다.
편집 1:해당 애플리케이션은 GTK-sharp를 사용하는 C# Mono 애플리케이션입니다. 로그인 없이 환경 자체를 GUI(LXDE)로 부팅할 수 있습니다. 시작 스크립트 외부에서 정상적으로 애플리케이션을 실행하면 X가 실행 중인 것처럼 보입니다(pidof X로 확인 시). 그러나 /usr/bin/startX를 스크립트에 추가해도 아무 것도 변경되지 않았습니다.
답변1
귀하의 추가 정보 요청으로 인해 이 프로그램이 시작되어야 한다는 사실을 알게 되었습니다.뒤쪽에LXDE가 데스크톱 세션을 위한 준비가 되었습니다.
그래서 구글링해서 찾아보니/etc/xdg/lxsession/LXDE/자동 시작데스크톱 세션이 시작될 때 실행될 애플리케이션 목록이 포함되어 있습니다.
나는 추가했다
@mono myapp.exe
재부팅하면 작동했습니다! 분명히 이것은 LXDE 환경에만 적용되므로 이에 따라 질문을 편집하겠습니다.