PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programm über PHP ausführen



Masterraven9
19.08.07, 00:45
Hy,

ich hoffe dasich hier im richtigen Bereich bin.

Also ich habe auf meinem Debian PC xampp-linux installiert und würde gerne über den Webbrowser Programme ausführen. Also ich habe schon die meisten gängigen Methoden getestet das Problem liegt warscheinlich darin das das Programm dann immer laufen soll auch wenn der PHP Scripte beendet ist. Also das Programm startet auch für ca. 20 sec (ausgelesen mit ps -aux) aber dann wird es einfach beendet. Ich habeauch schon ein .sh script geschrieben was das Programm ausführt aber auch das bringt keinen erfolg.

P.S:: Also das Programm sowie das .sh script lassen sich per SSH problemlos starten. Die erforderlichen rechte sind mit chmod für das script und das Programm gesetzt. Ich sollte noch dazu sagen das ich auch erst ein einsteiger im Bereich PHP und Debian bin.

Hoffe das ihr mir helfen könnt.

tschloss
19.08.07, 06:46
Wie startest Du das externe Programm / Skript (bitte mal einen relevanten Auszug deines PHP-Programmes mit Code-Tags posten).

Und bei der Gelegenheit erkläre kurz oder poste Infos zu diesem Programm bzw. Skript.

Masterraven9
19.08.07, 07:33
Also ich habe ein start-script "mpcscontrol.sh" und damit starte und beende ich mpcs.

mpcscontrol.sh:

#! /bin/sh


case "$1" in
start)
echo "MPCS - Server wird gestartet..."
/opt/lampp/htdocs/mpcs/mpcs -c /opt/lampp/htdocs/mpcs &
echo "MPCS - Server wurde gestartet."
;;
esac

PHP eintrag:

exec("./mpcscontrol.sh start");

Hab aber auch schon system und popen versucht.

tschloss
19.08.07, 07:55
Verstehe ich dich richtig: das Start-Skript wird ausgeführt und das dort gerufenene Programm "mpcs" läuft los und beendet sich nach 20sec wieder?

Dann müßtest du mal in der Protokolldatei von mpcs nachsehen!
Was ist das eigentlich??
Wie lange müßte es denn laufen?
Läuft alles korrekt, wenn du das Skript als der User aufrufst, unter dem auch der Apache läuft?.
Wenn Du dir unsicher bist, dann "echo" deine Skript-Ausgaben mal in eine Textdatei (echo "A" >> protokoll.txt; protokoll braucht entsprechende Schreibrechte).

Masterraven9
19.08.07, 09:00
also im Log ist dann schon eine Fehlermeldung:

wenn ich mpcs per PHP starte:

-------------------------------------------------------------------------------
>> STREAMBOARD << mp-cardserver started at Sun Aug 19 00:38:19 2007
-------------------------------------------------------------------------------
2007/08/19 0:38:19 2844 s version=0.8k-rc16, system=i386-pc-linux, nice=-1
2007/08/19 0:38:19 2844 s max. clients=125, client max. idle=120 sec
2007/08/19 0:38:19 2844 s max. logsize=unlimited
2007/08/19 0:38:19 2844 s client timeout=5 sec, cache delay=0 msec
2007/08/19 0:38:19 2844 s shared memory initialized (size=520520, id=327680)
2007/08/19 0:38:19 2844 s auth size=2376
2007/08/19 0:38:19 2844 s services reloaded: 0 services freed, 8 services loaded
2007/08/19 0:38:19 2844 s userdb reloaded: 0 accounts freed, 3 accounts loaded
2007/08/19 0:38:19 2844 s signal handling initialized (type=sysv)
2007/08/19 0:38:19 2844 s 2335 service-id's loaded
2007/08/19 0:38:19 2844 s monitor: Bind request failed, waiting another 59 seconds
2007/08/19 0:38:20 2844 s monitor: Bind request failed, waiting another 58 seconds
2007/08/19 0:38:21 2844 s monitor: Bind request failed, waiting another 57 seconds
2007/08/19 0:38:22 2844 s monitor: Bind request failed, waiting another 56 seconds
2007/08/19 0:38:23 2844 s monitor: Bind request failed, waiting another 55 seconds
2007/08/19 0:38:24 2844 s monitor: Bind request failed, waiting another 54 seconds
2007/08/19 0:38:25 2844 s monitor: Bind request failed, waiting another 53 seconds
2007/08/19 0:38:26 2844 s monitor: Bind request failed, waiting another 52 seconds
2007/08/19 0:38:27 2844 s monitor: Bind request failed, waiting another 51 seconds
2007/08/19 0:38:28 2844 s monitor: Bind request failed, waiting another 50 seconds
2007/08/19 0:38:29 2844 s monitor: Bind request failed, waiting another 49 seconds
2007/08/19 0:38:30 2844 s monitor: Bind request failed, waiting another 48 seconds
2007/08/19 0:38:31 2844 s monitor: Bind request failed, waiting another 47 seconds
2007/08/19 0:38:32 2844 s monitor: Bind request failed, waiting another 46 seconds
2007/08/19 0:38:33 2844 s monitor: Bind request failed, waiting another 45 seconds
2007/08/19 0:38:34 2844 s monitor: Bind request failed, waiting another 44 seconds
2007/08/19 0:38:35 2844 s monitor: Bind request failed, waiting another 43 seconds
2007/08/19 0:38:36 2844 s monitor: Bind request failed, waiting another 42 seconds
2007/08/19 0:38:37 2844 s monitor: Bind request failed, waiting another 41 seconds
2007/08/19 0:38:38 2844 s monitor: Bind request failed, waiting another 40 seconds
2007/08/19 0:38:39 2844 s monitor: Bind request failed, waiting another 39 seconds
2007/08/19 0:38:40 2844 s monitor: Bind request failed, waiting another 38 seconds
2007/08/19 0:38:41 2844 s monitor: Bind request failed, waiting another 37 seconds
2007/08/19 0:38:42 2844 s monitor: Bind request failed, waiting another 36 seconds
2007/08/19 0:38:43 2844 s monitor: Bind request failed, waiting another 35 seconds
2007/08/19 0:38:44 2844 s monitor: Bind request failed, waiting another 34 seconds
2007/08/19 0:38:45 2844 s monitor: Bind request failed, waiting another 33 seconds
2007/08/19 0:38:46 2844 s monitor: Bind request failed, waiting another 32 seconds
2007/08/19 0:38:47 2844 s monitor: Bind request failed, waiting another 31 seconds
2007/08/19 0:38:48 2844 s monitor: Bind request failed, waiting another 30 seconds
2007/08/19 0:38:49 2844 s PANIC: master deadlock! last location: init
2007/08/19 0:38:49 2844 s cardserver down


und so sollte es aussehen:

-------------------------------------------------------------------------------
>> STREAMBOARD << mp-cardserver started at Sun Aug 19 01:00:40 2007
-------------------------------------------------------------------------------
2007/08/19 1:00:40 2992 s version=0.8k-rc16, system=i386-pc-linux, nice=-1
2007/08/19 1:00:40 2992 s max. clients=125, client max. idle=120 sec
2007/08/19 1:00:40 2992 s max. logsize=unlimited
2007/08/19 1:00:40 2992 s client timeout=5 sec, cache delay=0 msec
2007/08/19 1:00:40 2992 s shared memory initialized (size=520520, id=360448)
2007/08/19 1:00:40 2992 s auth size=2376
2007/08/19 1:00:40 2992 s services reloaded: 0 services freed, 8 services loaded
2007/08/19 1:00:40 2992 s userdb reloaded: 0 accounts freed, 3 accounts loaded
2007/08/19 1:00:40 2992 s signal handling initialized (type=sysv)
2007/08/19 1:00:40 2992 s 2335 service-id's loaded
2007/08/19 1:00:40 2992 s monitor: initialized (fd=6, port=988)
2007/08/19 1:00:40 2992 s camd 3.3x: disabled
2007/08/19 1:00:40 2992 s camd 3.5x: initialized (fd=7, port=30000)
2007/08/19 1:00:40 2992 s cs378x: disabled
2007/08/19 1:00:40 2992 s newcamd: disabled
2007/08/19 1:00:40 2992 s radegast: disabled
2007/08/19 1:00:40 2992 s logger started (pid=2993)
2007/08/19 1:00:40 2992 s resolver started (pid=2994, delay=15 sec)
2007/08/19 1:00:40 2992 s reader started (pid=2995, device=/dev/ttyS0, detect=cts)
2007/08/19 1:00:40 2992 s proxy started (pid=2996, server=127.0.0.1)
2007/08/19 1:00:40 2992 s anti cascading disabled
2007/08/19 1:00:40 2996 p03 proxy 127.0.0.1:20000 (fd=3)
2007/08/19 1:00:42 2995 r02 card detected
2007/08/19 1:00:45 2995 r02 ATR: 3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 03 84 55 FF 80 6D
2007/08/19 1:00:47 2995 r02 type: aladin, caid: 1702, acs: 3.84, rom=1.20(C20)
2007/08/19 1:00:47 2995 r02 ascii serial: 0267007473, hex serial: EA35F1, hex base: 1A
2007/08/19 1:00:50 2995 r02 chid: 7D27, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:50 2995 r02 chid: 7D22, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:50 2995 r02 chid: 03F2, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:50 2995 r02 chid: 04C4, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:50 2995 r02 chid: 000F, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:50 2995 r02 chid: 05DC, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:51 2995 r02 chid: 04BA, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:51 2995 r02 chid: 7D21, date: 2006/09/20 - 2007/09/27
2007/08/19 1:00:51 2995 r02 ready for requests

leider weiß ich auch nicht wo da das Problem liegt

und wenn ich mit ps -aux die Prozesse anschaue steht dort immer <defunct>

un dann is er weg

Masterraven9
19.08.07, 09:47
Also das "monitor: Bind request failed" Problem hab ich jetzt gelöst was ein sehr sinnloses Problem war.
Ich musste dem Monior Port des Programm´s einen anderen Port zuweisen weil dieser schon belegt war
aber wenn ichs über Konsole gestartet hab war der Port nicht belegt? Egal es ist nicht so als obs jetzt gehen würde.
Nun spuckt es eien andere Fehlermeldung aus also das Programm greift auf dem Com-Port RS232 zu.
Aber leider nicht wenn man es über php startet.

2007/08/19 10:36:40 2415 r02 Cannot open device: /dev/ttyS0

kann das sein das der webuser versucht den Com-Port anzusprechen und kein recht dazu hat?

thx

BedriddenTech
19.08.07, 14:40
kann das sein das der webuser versucht den Com-Port anzusprechen und kein recht dazu hat?

Genau so ist es. Guck dir doch mal mit "ps aux" an, unter welchem Benutzer der Webserver läuft - genau derselbe startet dann auch dein Programm.

Masterraven9
19.08.07, 17:24
thx das wars auch nur das der Benutzer bei mir nobody ist.

Also nochmals Danke für die Hilfe.

zyrusthc
19.08.07, 19:42
Genau so ist es. Guck dir doch mal mit "ps aux" an, unter welchem Benutzer der Webserver läuft - genau derselbe startet dann auch dein Programm.
So siehts aus, aber mit sudo kann man das umbiegen das es unter dem Wunschuser ausgeführt wird ;)

Greeez Oli