Wie führe ich einen Befehl vom Terminal / Skript aus, ohne warten zu müssen, bis das Programm beendet ist?

3783

Das Problem ist, dass, wenn ich einen Befehl (z. B. ein Python-Skript) ausführt, das Terminal oder Skript wartet, bis das Programm einen Exit-Status zurückgibt, damit es fortfahren oder zum Terminal zurückkehren kann. Gibt es eine Möglichkeit, dies zu umgehen?

0
Sie können es im Hintergrund ausführen, tun Sie einfach: ./command.py & vor 11 Jahren 0

3 Antworten auf die Frage

2
poke

In most shells, you can launch commands or processes in the background by appending an ampersand (&) to the command:

python file.py & 
Ich habe das schon probiert, aber es funktioniert nicht. vor 11 Jahren 0
Gelöst Danke für deine Hilfe. vor 11 Jahren 0
1

Several choices:

  1. Run it in screen. man screen, screen, myprorgamm, C-a d, screen -r.
  2. nohup myprogramm
  3. myprogramm &
Versucht: `$ screen _command_`,` $ nohup _command_` `$ _command_ &`. Bisher hat nichts funktioniert. vor 11 Jahren 0
Sie müssen den Bildschirm zuerst separat starten. und wenn Sie keinen Bildschirm haben, installieren Sie ihn zuerst. poke vor 11 Jahren 0
für screen - beginnen Sie mit "man screen", es ist eine komplexe App mit vielen Funktionen. `nohup` und` & `(aka detach) können wirklich nicht" nicht funktionieren ". Wenn es einen Fehler gibt - stellen Sie sicher, dass Sie ihn hier posten. vor 11 Jahren 1
Der Amperstand-Workaround funktioniert zwar, aber aus einem unbekannten Grund muss ich auf ein Terminalfenster doppelklicken, da die neue Zeile aus irgendeinem Grund nicht angezeigt wird. Gelöst, danke! vor 11 Jahren 0
0

Yes. If you're using Bash or a similar shell, type:

./your_script.py & 
Versucht das vom Terminal aus, aber es funktioniert nicht. vor 11 Jahren 0
Welches Betriebssystem und welche Shell verwenden Sie? vor 11 Jahren 0
_Trisquel GNU / Linux_ mit _dash_. In Terminal verwende ich _bash_, während ich in Skripten _dash_ arbeite. Beides funktioniert nicht. Der Befehl, den ich ausführen möchte, ist _ / usr / share / screenlets / CircleClock / CircleClockScreenlet.py_, der Teil eines Programms namens _Screenlets_ ist (auch in _Ubuntu_ verfügbar). vor 11 Jahren 0