Hintergrundprogramm in bash ohne Jobsteuerung ausführen

873
Wu Yongzheng

Ich führe oft GUI-Programme wie Firefox aus und zeige von der Shell. Wenn ich "firefox &" eingebe, wird firefox als bash-Job betrachtet. "Fg" bringt es in den Vordergrund und "hängt" die Shell. Dies wird ärgerlich, wenn einige Hintergrundjobs wie vim bereits ausgeführt werden.

Was ich möchte, ist, Firefox zu starten und es mit bash zu trennen. Betrachten Sie den folgenden Idealfall bei meinem imaginären Runbg:

$ vim foo.tex ctrl+z and vim is job 1 $ pdflatex foo $ runbg evince foo.pdf evince runs in background and I get me bash prompt back $ fg vim goes foreground 

Gibt es eine Möglichkeit, dies mit dem vorhandenen Programm zu tun? Wenn nicht, schreibe ich meine eigene Runbg.

1
"nohup" und "disown" sind nicht das, was Sie suchen? slhck vor 11 Jahren 0
Beachten Sie, dass Sie den Job angeben können, den Sie in den Vordergrund verschieben möchten, z. B. "fg% 1". cYrus vor 11 Jahren 0

2 Antworten auf die Frage

3
JockoBudface

Wie wäre es damit?

( firefox & ) 

Dies scheint es von der Jobtabelle fernzuhalten und fgkann es überhaupt nicht sehen.

Es klappt. clevere Idee. Wu Yongzheng vor 8 Jahren 1
1
Fran

Mach das:

bash$ firefox & bash$ disown 

Bash hat nun den gerade erstellten Hintergrundjob vergessen.

Genau das will ich. Vielen Dank. Wu Yongzheng vor 11 Jahren 0
Nachdem ich es für einige Zeit benutzt hatte, konnte ich mich nicht daran gewöhnen. Das Problem ist, dass ich die Auftragsnummer angeben muss. disown ohne Argument trennt nicht den vorherigen Hintergrundjob, sondern den "aktuellen Job", den ich seltsam definiert habe. Wu Yongzheng vor 11 Jahren 0
Ich glaube, dass der zuletzt im Hintergrund befindliche Job immer der aktuelle Job ist, es sei denn, Sie ändern den aktuellen Job, bevor Sie "disown" eingeben. Fran vor 11 Jahren 0
Hi Fran, versuch das mal. 1. vim foo; 2. gedit bar &; 3. verleugnen 4. fg. Schritt 3 lehnt vim ab und Schritt 4 bringt gedit in den Vordergrund. Nach dem Lesen des bash-Handbuchs weiß ich immer noch nicht, warum bash vim als aktuellen Job in Schritt 3 betrachtet. Wu Yongzheng vor 11 Jahren 0