SH & PHP funktion klapp aber keine ausgabe

B

Bosko

Grünschnabel
Hallo,

ich sitze nun seit einiger Zeit dran das man über php bestimmte Shell Programme starten und stoppen kann, es kommt so weit kein fehler aber wenn man das script starten möchte kommt in php keine ausgabe, in der shell started ordnungsgemäss das programm, aber wenn man das programm stop oder versucht nochmal zu starten gibt die Shell die meldung an php über.

Nun wieso nicht wenn man es einmal started, da lädt die seite sich dumm und dämlich,

hier das SH

Code:
#! /bin/sh 
NAME=test
DESC="Servcies"
DIR=/home
SCRIPT=programm

case "$1" in
start)
  if [[ `ps x |grep $SCRIPT |grep -v grep` ]]
  then
      echo "Es läuft z.Z. noch eine PID von $NAME, Bitte Stoppen Sie erst die laufende bevor sie eine neue Starten"
  else      
  echo "Starte $DESC: $NAME <br>"
  cd $DIR
  ./$SCRIPT &
  echo " ... $DESC gestarted<br>"
  fi
 ;;

stop)
  if [[ `ps x |grep $SCRIPT |grep -v grep` ]]
  then
      echo -n "Stoppe $DESC: $NAME <br>"
	ps x |grep $NAME |grep -v grep | awk '{print $1}' | xargs kill
      echo " ... $DESC gestoppt. <br>"
  else
      echo "<center><font color=\"red\">Konnte keinen laufenden Server mit PID -- $NAME -- nicht finden</font></center><br>"
  fi
 ;;

*)
  echo "Usage: $0 Parameter eingeben {start|stop}"
  exit 1
 ;;
esac 
exit 0

wie gesagt, das gibt er nicht aus;

echo "Starte $DESC: $NAME <br>"
cd $DIR
./$SCRIPT &
echo " ... $DESC gestarted<br>"

hier der php code;

PHP:
<?php
$output = shell_exec("sudo -u www /home/ssr start");
echo "Meldungen vom Startscript";
echo $output; ?>

ich habe die mal mit anderen shell programmen versucht, die in der shell selbst eine ausgabe haben, bei dennen läuft es, programme die starten ohne ausgabe, da geht es nicht.

hat da jemand eine ahnung wie man die ausgabe beweltigen kann.

gruß
 
Also ich verwende meist system() anstatt shell_exec (das kenne ich erst seit gestern^^) und klappt eigentlich immer ganz gut, schonmal damit versucht?
 
hoi,

hab das mal gerade ausprobiert, aber wenn ich

$output = system("/home/ssr start");

machen kommt im bowser die gewünschte ausgabe aber das Shell Programm started nicht

mache ich

$output = system("sudo -u www /home/ssr start");

started das Shell Programm aber die Seite ladet sich wieder ewiglang ohne ausgabe also das gleiche wie mit shell_exec.

sorry klappt nun nicht wirklich
 
Kann ich nicht nachvollziehen.
Hab folgendes versucht:
Code:
<?php
$raus=shell_exec("ls -la .");
echo $raus;
?>
Code:
<?php
$raus=system("ls -la .");
echo $raus;
?>
Code:
<?php
$raus=`ls -la .`;
echo $raus;
?>
Hat alles funktioniert...
Muss an dem Zusammenspiel des extra Skriptes (SH) liegen.
 
hoi

wenn ich -la . nutze geht es, warum weiß net, aber ich danke dir

gruß
 

Ähnliche Themen

Skript soll nicht doppelt laufen... kill pkill pid cron

Falsche Ausgabe von $LINENO

Timeout für Long Time Querys

Queue für copy Script

Shellskript - Fehler in Cron

Zurück
Oben