[gelöst]Scriptproblem - Befehl2 ausführen, obwohl Befehl1 noch nicht bendet ist

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

[gelöst]Scriptproblem - Befehl2 ausführen, obwohl Befehl1 noch nicht bendet ist

Beitrag von schwedenmann » 12.05.2019 11:47:07

Hallo


Ich habe django-cms, sowie wagtail-cms in einer python-virtuelenv installiert. Um nicht jedesmal, wenn ich jetzt die Projektseite (alles lokal) aufrufen möchte, die jeweiligen befehl im Terminal eintippen (oder per history) raussuchen will, wollte ich das per Script (später dann per alias) lösen.
Das Script lautet folgendermaßen

#!/bin/bash
source /home/joerg/wagtail-test/bin/activate
cd wagprojekt-eins
./manage.py runserver

Das funktioniert , letzte Zeile startet einen http-server auf port 8000. Wenn man dann im Browser http://localhost:8000 eingibt, erscheint die Startseite von wagtail, bzw. Django.

den python http-server stopt man per Ctrl-C.

Jetzt zum Problem, ich wollte aus Faulheit den Browser mit firefox http://localhost:8000 auch über das Script starten, tut er aber nicht.

firefox http://localhost:8000 nach cd wagprojekt-eins startet den firefox, aber der python-http-Server wird nicht gestartet, erst wenn ich firefox, beende startet der http-server, selbes wenn ich sleep 15 && firefox http:localhost:8000 schreibe.

Wenn ich dagegen firefox an Ende des Scripts setze, also nach ./manage.py runserver, startet firefox nicht, da der http-server noch läuft.

Wie geht das per Script, das der python-developement-http-server per script gestartet wird und dann der firefox mit http://localhost:8000 ?

mfg
schwedenmann
Zuletzt geändert von schwedenmann am 20.07.2019 10:53:32, insgesamt 2-mal geändert.

inne
Beiträge: 3281
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Scriptproblem - Befehl2 ausführen, obwohl Befehl1 noch nicht bendet ist

Beitrag von inne » 12.05.2019 12:09:37

Code: Alles auswählen

#!/bin/bash

f () {
	sleep 3
	firefox http://localhost:8000
}

# starte firefox, warte aber 3 sek auf den server
f &

# starte den server - als letztes damit STRG-C weiterhin verwendet werden kann zum beenden
source /home/joerg/wagtail-test/bin/activate
cd wagprojekt-eins
./manage.py runserver
Das warten auf den Server, kann man bestimmt auch schöner lösen... z.B. indem man auf den offenen Socket/IP+Port wartet.

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Scriptproblem - Befehl2 ausführen, obwohl Befehl1 noch nicht bendet ist

Beitrag von schwedenmann » 12.05.2019 17:53:00

Hallo

@inne

Danke, funktioniert einwandfrei, ich habe nur "sleep 10" gesetzt, da der Aufruf des http-servers afaik mehr als 3s dauert.

Jetzt das ganze als alias und wieder was für Faule getan :mrgreen: Das mit der Faulheit scheint mit meinem Alter zusammnezuhängen :mrgreen:

mfg
schwedenmann

Antworten