2016-06-01 13 views

Antwort

0
ps aux | grep testbin | grep -v grep 

Ich denke, Sie sehen nur Ihre "Grep" -Prozess. Verwenden Sie den obigen Befehl.

0

Der "su" Prozess kann nicht vermieden werden, aber Sie können es beenden, bevor Ihr Testbin tut. Ihre ursprüngliche Frage mit „Schlaf“ sieht wie folgt aus:

(su - root -c "sleep 120" &) ; ps aux | grep sleep 

Wenn Sie diese Zeile mehrere Male ausgeführt wird Sie mehrere „su“ Prozesse als Ergebnis des grep sehen. die subprocess Hintergrunddr ermöglicht den su Prozess zu Ende, wie folgt aus:

(su - root -c "sleep 120 &" &) ; ps aux | grep sleep 

Wenn Sie diese Zeile mehrere Male ausführen Sie, dass die „su“ Prozesse aus der Liste sehen können, verschwinden aber, dass die Schlaf-Befehle weiter.

Beachten Sie, dass das kaufmännische Und in den Anführungszeichen für den Unterprozess ist und dass das Und-Zeichen kurz vor den Klammern für den Befehl 'su' ist, der erforderlich ist, um Ihre Frage in einer einzigen Zeile auszuführen und den Testvorgang zu beschleunigen.

Ich habe überprüft, ob ein Äquivalent von 'execv' für die Befehlszeile existiert, aber das scheint nicht der Fall zu sein. Außerdem ist "su" ein Prozess, der mit den Berechtigungen des Aufrufers ausgeführt wird, und der Subprozess von su wird mit den Berechtigungen des Prozesses ausgeführt, der durch "su" gegabelt wird. Es erscheint mir logisch, dass Sie den "su" -Prozess nicht mit seinem Kind ersetzen können, wie es "execv" in "C" aus Sicherheitsgründen tut.

+0

Danke für Ihre Antwort jetzt es nur mein Testbin-Prozess und es war eigentlich su Befehl Prozess. –