upstart 스크립트를 사용하여 CentOS에서 GUI 애플리케이션을 시작하려고 합니다. 내 테스트 스크립트는 /etc/init/ 폴더에 있습니다.
start on desktop-session-start
stop on desktop-shutdown
respawn
script
export DISPLAY=:0
sleep 5
exec /.1/Projects/UpstartTest/start.sh &
end script
start.sh 스크립트는 GUI 애플리케이션의 바이너리를 실행하고 있습니다.
컴퓨터를 다시 시작한 후. 내가 입력할 때:
[root@mg-CentOS ~]# initctl status test
test stop/waiting
그래서 내 신생 기업이 실행되지 않습니다. 내가 입력하는 동안
initctl이 테스트를 시작합니다
수동으로 하면 별 문제 없이 잘 작동됩니다.
사용자 로그인(데스크톱 시작) 후에 이 시작 스크립트를 어떻게 실행할 수 있나요? 신생 기업을 위한 CentOS에 대한 자세한 문서를 찾으려고 노력하고 있지만 문서가 없습니다.
답변1
존재하다센토스7 gnome-session-properties
GUI를 사용하여 이 콘텐츠를 편집합니다.
이 파일 .desktop
은 에 있습니다 ~/.config/autostart/
. 파일을 직접 복사할 수도 있습니다 .desktop
.
답변2
자동으로 시작된 앱/서비스가 여기저기 흩어져 있습니다...
모든 자동 시작 나열적용분야, 찾다자동 시작:
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" \
"/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
모든 자동 시작 나열제공하다:
systemctl list-unit-files --type=service
# OR search for:
ls -1 /lib/systemd/system/*.service /etc/systemd/system/*.service
모두 나열내부에스크립트:
ls /etc/init.d/
모두 나열예약된 작업 목록스케줄러:
crontab -l
# to edit run: crontab -e
답변3
X 세션이 없기 때문에 시작되지 않을 것이라고 추측할 수 있습니다. 사용하라고 지시했음에도 불구하고 DISPLAY:0
현재 디스플레이는 귀하가 사용하고 있으며 서비스는 사용하고 있지 않습니다 upstart
.
기본적으로 upstart
응용프로그램 실행을 위해 설계된 것이 아니라 시스템 서비스 실행을 위해 설계되었습니다.
*.desktop
대신 항목을 만들 수 있다고 ~/config/autostart
생각합니다.gnome-tweak-tool
실행 애플리케이션도 관리할 수 있습니다.
항목 *.desktop
은 다음과 같습니다.
[Desktop Entry]
Name=MyCoolScript
GenericName=A really cool script
Comment=Some description about your script
Exec=/.1/Projects/UpstartTest/start.sh
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
사양에 대한 자세한 내용을 보려면 다음 사이트를 방문하세요.그놈 개발자 웹사이트.