Warum funktioniert exec("top"); Arbeit an Linux?
Ich habe versucht, diesen Befehl auszuführen
echo exec("top");
und
echo exec("/usr/bin/top");
weder funktioniert (gibt leere Ausgabe)
weiß jemand warum?
- Überprüfen Sie die top installiert ist.
- exec() ist wahrscheinlich deaktiviert auf Ihrem host.
- Ich bin mit VPS und dieser arbeitet phpcode.eu/exec/index2.php
- Ich verwende es täglich
- haben Sie Lesen Sie meinen vorherigen Kommentar? ICH BENUTZE ES TÄGLICH
- Und kann downvoter mir sagen, warum ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da top ist ein interaktives Programm, das ausgeführt werden soll, die auf einem terminal, der nicht ausgeführt werden von einem Skript. Sie werden wahrscheinlich wollen, lassen Sie das 'ps' - Kommando mit Argumenten, die Ausgabe Sortieren nach cpu-Auslastung.
http://www.devdaily.com/linux/unix-linux-process-memory-sort-ps-command-cpu
Es wahrscheinlich funktioniert, aber
exec()
nichts zurückgibt. Lesen Sie die Anleitung:exec()
Aber Sie haben ein anderes problem:
top
nicht beenden sich von selbst. Sie können nicht es verwenden, weil Sie benötigen, senden Sie das interrupt-signal (gerade gemerkt:q
ist auch ok).Einer Lösung
top
zu stoppen, nachdem eine iteration-l 1
. Ich habe es gerade ausprobiert, mich mit-n 1
und es funktioniert guttop
oder etwas ähnliches (weil vielleicht$PATH
ist nicht festgelegt oder so ähnlich). Das ist alles. Und wirklich: Nur "funktioniert nicht" auf fast jede Antwort nicht ermutigt mich zu denken, über ihn weiter.Können Sie tatsächlich rufen Sie top und echo seine Ausgabe. Code, der bei mir funktioniert:
-b - Ausführung im batch-Modus
-n 1 - nur eine iteration
Wenn Sie wollen, um es in eine variable :
Verwendet habe ich:
100% abzüglich der idle-Zeit.