Wie kann ich ein Bash-Skript außerhalb eines Terminals ausführen?

2269
sixtyfootersdude

Hey All, schrieb dieses Skript, um meine Freundin zu verwirren, wenn sie meinen Computer benutzt. Das einzige Problem ist, dass das Skript angehalten wird, wenn das Terminal geschlossen wird. Es wird derzeit im Hintergrund ausgeführt, aber wie kann ich es im Hintergrund ausführen lassen, aber nicht in einem Terminal?

(sleep 5; say "Hello Girlfriend")& 
3
Also, wo willst du ihr die Botschaft zeigen? John T vor 14 Jahren 0
Wenn es nicht in einem Terminal läuft, wie sehen Sie die Ausgabe? pavium vor 14 Jahren 1
@ John T und Pavium: Der Befehl say unter Mac OS X ist ein Text-zu-Sprachbefehl. Dh der Befehl liest den Text und spielt ihn auf den Lautsprechern ab. sixtyfootersdude vor 14 Jahren 4
Ich nehme an, sie wird verwirrt, weil es "Mädchen frinde" statt "Freundin" sagt. Nathaniel vor 14 Jahren 0
Eigentlich habe ich das Wort "sagen" bemerkt, aber ich bin keine Mac-Person, die ich nicht verstanden habe. Wenn überhaupt, hätte ich vielleicht an die Say-Funktion in Perl 5.10 gedacht pavium vor 14 Jahren 0

5 Antworten auf die Frage

4
Dennis Williamson

Haben Sie versucht nohup?

nohup command >/dev/null 2>&1 & 
2
dmckee

Ich verspreche, dass 5 Sekunden zu schnell sind, egal wie sehr sie dich mag. Ja wirklich.

nohup(und in Bash disown) können Sie den Prozess vom auslösenden Terminal trennen.

1
John T

Sie können es zu einem bestimmten Zeitpunkt mit atoder cronim Hintergrund ausführen .

0
AxeZ

Sie können die Ausführung mit Strg-Z anhalten und dann mit bg (background) im Hintergrund laufen lassen.

Wenn Sie es hervorbringen möchten, dann fg oder%.

0
akira

Verwenden Sie atoder, cronwie von John vorgeschlagen, und wallsenden Sie dann eine Nachricht an ihr Endgerät.