2016-11-01 8 views
0

Ich möchte mein Python-Programm (Graphical User Interface) beim Start in Linux (Raspbian auf einem Raspberry PI) starten.Python-Skript beim Booten Linux

Ich habe ein Initskript gemacht, um mein Python-Programm zu starten, und ich habe es in die etc/init.d-Map eingefügt.

Ich habe es mit dem Befehl update-rc.d aktiviert. Alles funktioniert gut.

Aber mein Python-Skript wird nicht mit dem folgenden Code in dem Init-Skript starten:

#!/bin/bash 

### BEGIN INIT INFO 
# Provides:   GUI 
# Required-Start:  
# Required-Stop:  
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: This is a test daemon 
# Description:  This is a test daemon 
#     This provides example about how to 
#     write a Init script. 
### END INIT INFO 



case $1 in 
start) 
    python3 /home/pi/Desktop/GUI/GUI.py 
    ;; 
stop) 
    # Stop the daemon. 
    if [ -e $PIDFILE ]; then 
    status_of_proc -p $PIDFILE $DAEMON "Stoppping the $NAME process" && status="0" || status="$?" 
    if [ "$status" = 0 ]; then 
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE 
    /bin/rm -rf $PIDFILE 
    fi 
    else 
    log_daemon_msg "$NAME process is not running" 
    log_end_msg 0 
    fi 
    ;; 
restart) 
    # Restart the daemon. 
    $0 stop && sleep 2 && $0 start 
    ;; 
status) 
    # Check the status of the process. 
    if [ -e $PIDFILE ]; then 
    status_of_proc -p $PIDFILE $DAEMON "$NAME process" && exit 0 || exit $? 
    else 
    log_daemon_msg "$NAME Process is not running" 
    log_end_msg 0 
    fi 
    ;; 
reload) 
    # Reload the process. Basically sending some signal to a daemon to reload 
    # it configurations. 
    if [ -e $PIDFILE ]; then 
    start-stop-daemon --stop --signal USR1 --quiet --pidfile $PIDFILE --name $NAME 
    log_success_msg "$NAME process reloaded successfully" 
    else 
    log_failure_msg "$PIDFILE does not exists" 
    fi 
    ;; 
*) 
    # For invalid arguments, print the usage message. 
    echo "Usage: $0 {start|stop|restart|reload|status}" 
    exit 2 
    ;; 
esac 
+0

, wie Sie versuchen, 'Service --status zu laufen - Gibt es irgendwelche Befunde? –

Antwort

1

Das Problem ist, dass, wenn die Init-Skript läuft, gibt es keine grafische Oberfläche zur Verfügung. Versuchen Sie anstelle der Verwendung eines Init-Skripts, Ihre Anwendung so zu konfigurieren, dass sie beim Start von X ausgeführt wird.

zuerst die Befehlszeile fügen Sie Ihre GUI-Anwendung zu starten ~/.xinitrc

# ~/.xinitrc 

exec python3 /home/pi/Desktop/GUI/GUI.py 

und starten Sie den X-Server

startx 
+0

Wo finde ich diese Datei? –

+0

Sie finden es im Home-Verzeichnis Ihres Benutzers (z. B. _/home/jarno/.xinitrc_). Wenn es nicht existiert, erstellen Sie einfach einen neuen. –

+0

Okay, das habe ich jetzt gemacht. Ich habe den X-Server angegeben, und wenn ich neu starte, bekomme ich einen weißen Anmeldebildschirm (das hatte ich vorher noch nie). Und wenn ich mich anmelde, wird es aktualisiert und ich muss mich erneut einloggen (macht das weiter). Wenn ich einen falschen Login eingebe, heißt es, dass der Login richtig ist. Aber wenn ich die richtigen Informationen benutze, wird es nur aktualisiert. Das gleiche Problem tritt ohne die Xinitrc-Datei BTW auf. –

Verwandte Themen