Wie kann ich eine For-Schleife erstellen, die viele Prozesse startet?

Wie kann ich eine For-Schleife erstellen, die viele Prozesse startet?

Ich möchte einige Fehler testen und dafür muss die PID größer als 99999 sein. Ich denke dabei an ein Bash-Skript, eine For-Schleife. Irgendwelche Ideen?

Antwort1

Sie könnten so etwas tun, um einen Prozess mit der gewünschten PID zu starten.

while true; do bash -c '[[ "$$" == 99999 ]] && echo PID is 99999'; done

Sie können warten, bis Sie die gewünschte PID erhalten, und die echoAnweisung wahrscheinlich durch das ersetzen, was Sie tatsächlich testen müssen.

Verweise

wird nach dem Kill dieselbe PID verwendet?

BEARBEITEN

Warum wächst die PID-Nummer? Liegt es daran, dass Sie immer wieder eine andere Bash-Instanz ausführen?

Ich glaube, das, was Sie gesagt haben, ist das, was passiert. Dies könnte einfach wie folgt getestet werden.

while true; do bash -c 'echo $$' ; done

Wir konnten sehen, dass die PIDs weiter erhöht werden und aus der Manpage von basherkenne ich, dass

-c Zeichenfolge Wenn die Option -c vorhanden ist, werden Befehle aus der Zeichenfolge gelesen. Wenn nach der Zeichenfolge Argumente stehen, werden diese den Positionsparametern zugewiesen, beginnend mit $0.

Meines Wissens echowird jede Anweisung im obigen Test als separater Prozess ausgeführt, weshalb wir sehen konnten, dass die PIDs erhöht werden.

Antwort2

Was auch immer Sie versuchen, es gibt höchstwahrscheinlich den besseren Ansatz, aber wenn Sie entschlossen sind, etwas wie

while [[ 1 == 1 ]]; do sleep 10000& done

startet viele sleeps, aber es kann eine Weile dauern, bis alle gestartet sind. Wenn Sie genügend Prozesse haben, klicken Sie einfach Ctrl-Cauf „ whileSchleife beenden“.

verwandte Informationen