ubuntuusers.de

Url im Hintergrund laufen lassen

Status: Gelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

Budada_Bubladend

Avatar von Budada_Bubladend

Anmeldungsdatum:
13. Dezember 2009

Beiträge: 812

Hey Leute!

Ich habe folgendes Problem:

ich habe mir diesen String

mplayer "http://bcb-high.rautemusik.fm" 2>&1 | sed -u -n  "/^ICY/{s/^ICY Info: StreamTitle\=/Momentan gespielt: /;s/\;StreamUrl.*$//;p}"

in ein script getan und als befehl "radio" ausführbar gemacht!

funktioniert auch alles!

allerdings kann ich doch normalerweise eine anwendung mit & hinter dem befehl im hintergrund laufen lassen! geht aber in demfall nicht!

dieses Script habe ich aber extra geschrieben, um nicht so viele Fenster offen zu haben. Indemfall brauch ich aber jetzt jedesmal ein Extra Konsolenfenster dazu!

kann mir vielleicht jemand helfen, wie ich es schaffe, das der Url im Hintergrund läuft?

Danke schonmal im voraus

Lg BB

Creshal

Avatar von Creshal

Anmeldungsdatum:
24. November 2007

Beiträge: 487

Wohnort: Aachen

Einfach mit & in den Hintergrund schieben bringts auch nicht wirklich, weil das dann beendet wird, wenn das Terminal zugemacht wird. Versuchs mal mit start-stop-daemon.

Budada_Bubladend

(Themenstarter)
Avatar von Budada_Bubladend

Anmeldungsdatum:
13. Dezember 2009

Beiträge: 812

hey.. das is mir auch schon aufgefallen 😀 war grad sehr unheimlich.. als das nich aufhören wollte 😀

ich werds versuchen vielen dank schonmal

Budada_Bubladend

(Themenstarter)
Avatar von Budada_Bubladend

Anmeldungsdatum:
13. Dezember 2009

Beiträge: 812

muss nochmal kurz stören.. welche funktion soll ich denn dann dahinter hängen?

sorry falls ich mich dumm anstelle..

Lg BB

Chrissss Team-Icon

Anmeldungsdatum:
31. August 2005

Beiträge: 37971

Nur ein Tipp am Rande, schau dir mal Radio Tray an. Klappt mit dem von dir genannten Sender problemlos.

Budada_Bubladend

(Themenstarter)
Avatar von Budada_Bubladend

Anmeldungsdatum:
13. Dezember 2009

Beiträge: 812

danke für den tipp... das is super läuft sogar im hintergrund =)

vielen dank hat mir sehr geholfen!!!

Lg BB

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17593

Wohnort: Berlin

Creshal schrieb:

Einfach mit & in den Hintergrund schieben bringts auch nicht wirklich, weil das dann beendet wird, wenn das Terminal zugemacht wird. Versuchs mal mit start-stop-daemon.

So pauschal stimmt das nicht. Es hängt davon ab, wie Du das Fenster schließt, ob am X rechts oben, oder ob Du in der Shell 'exit' eingibst.

Creshal

Avatar von Creshal

Anmeldungsdatum:
24. November 2007

Beiträge: 487

Wohnort: Aachen

user unknown schrieb:

So pauschal stimmt das nicht. Es hängt davon ab, wie Du das Fenster schließt, ob am X rechts oben, oder ob Du in der Shell 'exit' eingibst.

Das stimmt "so pauschal" auch nicht. Bei urxvt+Openbox ist es egal wie ich die Shell beende, laufende Hintergrundjobs werden in beiden Fällen terminiert. Kann sein dass die Gnome-Shell automatisch forkt, drauf verlassen würd ich mich aber nicht.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17593

Wohnort: Berlin

Creshal schrieb:

... drauf verlassen würd ich mich aber nicht.

Gut - Deine Shells hatte ich noch nicht in Betrieb. Ich würd's ausprobieren, aber dann auch wiederum nicht annehmen, daß es je nach Wetterlage mal so und mal so ist.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2503

Hast du das konkret mit dem MPlayer probiert, Creshal user unknown?

Ich würde sagen, es liegt daran, wie das jeweilige Programm im Hintergrund mit SIGHUP umgeht. Wenn ich das folgende als Job starte, dann ist es egal, wie die Shell oder das Fenster beendet wird. Fehlt aber der Handler für SIGHUP, dann wird das Programm immer beendet.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>

void sighandler(int sig)
{
	printf("SIGHUP empfangen.\n");
	fflush(stdout);
}

int main(int argc, char **argv)
{
	struct sigaction sigact;

	sigact.sa_handler = sighandler;
	if (sigemptyset(&sigact.sa_mask) == -1)
		exit(EXIT_FAILURE);
	sigact.sa_flags = 0;

	if (sigaction(SIGHUP, &sigact, 0) == -1)
		exit(EXIT_FAILURE);

	printf("Schlafe.\n");
	fflush(stdout);

	while (1)
	{
		sleep(1000);
	}
}

Demnach kann man ein Beenden auch immer verhindern, wenn man das jeweilige Programm über nohup (oder screen) startet.

Creshal

Avatar von Creshal

Anmeldungsdatum:
24. November 2007

Beiträge: 487

Wohnort: Aachen

Vain schrieb:

Hast du das konkret mit dem MPlayer probiert, Creshal?

Ja.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2503

Creshal schrieb:

Vain schrieb:

Hast du das konkret mit dem MPlayer probiert, Creshal?

Ja.

Jup. Hab den falschen angesprochen. 😉

Creshal

Avatar von Creshal

Anmeldungsdatum:
24. November 2007

Beiträge: 487

Wohnort: Aachen

Auch gut. 😀

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17593

Wohnort: Berlin

Vain schrieb:

Hast du das konkret mit dem MPlayer probiert, Creshal user unknown?

mplayer wehrt sich schon dagegen überhaupt im Hintergrund gestartet zu werden:

mplayer somevid.mp4 & 
[2] 5080
ibmux:~/Desktop > MPlayer SVN-r29237-4.4.1 (C) 2000-2009 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
^C

Er macht extensiven Gebrauch beim Output und auch der Input läßt sich über die Konsole steuern.

Interaktive Programme im Hintergrund laufen lassen ist wohl prinzipiell schwierig - wenn auch nicht unmöglich, wenn ich Input-, Output- und Errorstream umlenke:

ibmux:~/Desktop > mplayer novideo.mp4 < /dev/null > /dev/null 2>&1 & 
[6] 5112
ibmux:~/Desktop > exit 
exit
Es gibt noch angehaltene Prozesse.

Wie man sieht wird mplayer nicht beendet, wenn ich die Shell (xfterm4) mit exit zu schließen trachte, jedoch wird die Shell auch nicht geschlossen. Das ist aber vielleicht nicht das Problem, ging es doch darum, ein irrtümliches Schließen zu unterbinden.

Wie man das aber mit dem Sed-Aufruf Budada Bubladends verknüpfen könnte weiß ich nicht - es ging mir auch v.a. darum zu zeigen, daß man die Shell oft durchaus schließen kann, während eine gestartete Hintergrundanwendung weiterläuft, weil ich mich selbst fragte, ob das nicht zu heikel ist, daß man versehentlich gestartete Anwendungen mitten in der Arbeit verliert, weil man die Shell schließt.

Für die Musik hat Chrissss ja eine Lösung gepostet, die sofort Anklang fand.

Budada_Bubladend

(Themenstarter)
Avatar von Budada_Bubladend

Anmeldungsdatum:
13. Dezember 2009

Beiträge: 812

Wie man das aber mit dem Sed-Aufruf Budada Bubladends verknüpfen könnte weiß ich nicht

also mir wurde geholfen.. =)

Radio Tray ist perfekt =)

Vielen Dank nochmal

Antworten |