2012-03-28 8 views
4

Ich hetze für eine Programmieraufgabe gegen die Uhr, in der ich eine Reihe von Instanzen des gleichen Programms auf der gleichen Maschine zur gleichen Zeit ausführen müssen. Zurzeit starte ich die Instanzen nacheinander, drücke Strg + z, um sie anzuhalten und mache dann 'bg% #', um die Ausführung im Hintergrund fortzusetzen.BASH: sende SIGTSTP signal (ctrl + z)

Dies ist extrem mühsam und zeitaufwendig zu tun jedes Mal, wenn ich eine kleine Änderung in meiner Anwendung testen muss, also möchte ich ein Bash-Skript schreiben, das die mehreren Instanzen für mich starten wird, aber ich weiß nicht wie um den Hintergrund in einem Skript zu wechseln.

Kann mir bitte jemand sagen, wie ich ein einfaches Skript schreiben kann, das einen langen Befehl startet, pausiert und im Hintergrund weiterführt?

Danke

+0

Was ist der Grund für den Befehl pausieren, bevor er im Hintergrund läuft? –

Antwort

12

Haben Sie gerade es im Hintergrund beginnen zu wollen? Zum Beispiel: - Z und bg

mycommand & 

Wenn Sie feinkörnige Auftragssteuerung möchten, können Sie Ctrl emulieren. Steuerung - Z sendet SIGTSTP ("tty stop"), um das Programm, das sie aussetzt:

kill -TSTP [processid] 

Und der bg Befehl sendet es nur eine SIGCONT:

kill -CONT [processid] 
+0

Ja !!! das entspricht meinen Bedürfnissen perfekt !! Danke für die Antworten ... Ich werde jetzt BASH fließend lernen müssen :) – noobler

3

Sie nicht. Nach dem Befehl fügen Sie ein kaufmännisches Und-Zeichen ein.

command1 & 
command2 & 
command3 & 
+0

Dies ist keine Lösung, wenn einer der Befehle eine Benutzerinteraktion erfordert. –

Verwandte Themen