[PHP] exec() Ladefehler

  • Wenn ich in php per

    PHP
    exec("sudo sh /path/to/file.sh stop");


    auf die Datei

    Code
    if [ $1 = "start" ]
     then ices2 /etc/ices2/ices-playlist.xml
    elif [ $1 = "stop" ]
     then kill -9 `pidof ices2`
    fi


    zugreife führt er so wie er sollte den befehl kill -9 `pidof ices2` aus, jedoch wenn ich per

    PHP
    exec("sudo sh /path/to/file.sh start");


    auf die Datei zugreife führt er den Befehl zwar aus, aber er Lädt die Seite solange weiter, bis ich den Prozess per kill -9 `pidof ices2` stoppe.
    Wärend er lädt kann ich auch keinerlei Aktionen auf der Website machen.
    Woran liegt das ?


    Ich bedanke mich schonmal für alle sinvollen und hilfreichen Beiträge.

  • Am naheliegendsten ist, dass ices2 nicht als Daemon ausgeführt wird. Mach mal ein "&" hinter den Befehl und ein "nohup" davor, damit er in den Hintergrund geschoben wird:

    Code
    then nohup ices2 /etc/ices2/ices-playlist.xml &


    Sinnvollere Möglichkeit wäre, den Server in nem screen oder tmux laufen zu lassen:

    Code
    then screen -dmS ice ices2 /etc/ices2/ices-playlist.xml


    Dann kannst du ihn beenden mit:

    Code
    then screen -X kill -S ice


    Oder im Terminal dich zu der Session einhängen, wenn du mit dem entsprechenden User eingeloggt bist:

    Code
    screen -r ice