Archiv verlassen und diese Seite im Standarddesign anzeigen : befehl als user ausführen
ich habe einen php script als root per cron laufen. das script soll machen unter anderem auch psy-bouncer starten/stopen dazu benutze ich den befehl
system("/usr/bin/sudo -u username /homedir/bouncerdir/./psybnc");
zum starten
der sagt mir aber in der console immer "Could not load language file, aborting."
wechsele ich in das dir und starte den prozess mit ./psybnc geht es einwandfrei
das problem habe ich auch bei andere befehle zb. wenn ich cp irgendwas nach irgendwo mache dann sagt er das die datei nicht existiert aber diese gibt es 100%ig
register_globals ist auf On gestellt, jemand ne idee sonst was es sein könnte ?
Versuch es mal mit
system("/usr/bin/sudo -u username /homedir/bouncerdir/psybnc");
nein das geht auch nicht, da sagt er das gleiche das ist auch wenn ich in der console als root eingebe
sudo -u username /homedir/bouncerdir/./psybnc oder auch
sudo -u username /homedir/bouncerdir/psybnc
immer wieder das gleiche. weitere tips bitte
Vielleicht sucht das Skript die Datei im aktuellen Verzeichniss und findet es dann nicht. Wechsle doch vorher mit cd ins richtige Verzeichniss oder such in dem Startskript nach der Zeile, in der die Datei geladen werden soll und gib das ganze Verzeichniss mit an.
Das "Problem" beim sudo ist eventuell auch daß es keinen "echten" Login-Vorgang macht, sondern nur die IDs entsprechend ändert. Es kann sein daß dabei bestimmte Variablen nicht gesetzt/aktualisiert werden (z.B. PATH), oder Dateien wie die .bashrc etc. nicht ausgeführt werden, in denen weitere Variablen gesetzt werden können (die für das Programm notwendig sind).
Probier mal aus was bei einem
su -l username -c " /homedir/bouncerdir/psybnc" passiert. Damit wird ein echtes Login als der entsprechende User erzwungen. Sollte es damit gehen so liegt das Problem am "sudo".
ciao
Michael
Configuration File (null) not found, aborting
Run 'make menuconfig' for creating a configuration or create the file manually.
das sagt er dann, aber das configurationsfile vom psybnc ist vorhanden
Versuch das echt mal mit nem ChangeDir vorher. Der scheint wohl die Config im aktuellen Verzeichniss zu suchen und wenn du bsp im Verzeichnis /var/www bist und da /homedir/bouncerdir/psybnc ausführst, bist du ja immernoch im Verzeichnis /var/www.
Kannst du diesem Script nicht den Standort der Konfigurations-Datei mitgeben?
Wenn nicht, änder es doch dahingehend um. :)
tatsächlich, ich mus erst in das home wechseln also benutze ich jetzt das da
chdir("/home/psybnc");
system("sudo -u username ./psybnc");
das problem jetzt ist das mir der prozess fast richtig gestartet wird aber nur fast.
das script hängt sich auf würde ich sagen, also es wird nicht beendet sondern zeigt mir die ausgabe vom psybnc. das ist nicht schlimm aber es beendet sich nicht. wenn ich ps aux |grep psybnc benutze schaut das so aus
b001_1 12220 0.0 0.0 0 0 pts/0 Z 17:14 0:00 [psybnc <defunct>
b001_1 12221 0.0 0.1 3024 1436 pts/0 S 17:14 0:00 ./psybnc
ich habe gehört system(); wartet bis der prozess beendet ist? wenn das so ist was kan man sonst nehmen ?
hehe problem gelöst
Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion starten und Sie es im Hintergrund laufen lassen möchten, Sie sicherstellen müssen, dass die Ausgabe des Programms in eine Datei oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP solange laufen, bis das Programm beendet ist.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.