bash: wait und &; kann man in der bash soz auch forken?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

bash: wait und &; kann man in der bash soz auch forken?

Beitrag von chabayo » 09.05.2010 22:32:03

Hi,..

...also in etwa folgendes:

Code: Alles auswählen

pid = { wget --quiet -O out $URL
notify-send info downloaded } &
while test -f /proc/$pid
do ls -l out
sleep 1
done
Ich bin noch neu im Wunderland und bitte um Hilfe beim sprechen lernen *grins*.
Watt about the non-digital!?

Benutzeravatar
Meillo
Moderator
Beiträge: 9253
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash: wait und &; kann man in der bash soz auch forken?

Beitrag von Meillo » 10.05.2010 12:56:15

Vielleicht suchst du ja das Programm `watch'.
Use ed once in a while!

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Re: bash: wait und &; kann man in der bash soz auch forken?

Beitrag von chabayo » 11.05.2010 12:41:01

...nein - obwohl ich das schon wieder aus den Augen verloren hab.

Sowas suche ich:
run.c hat geschrieben:#include "includes.h"

int main ( int argc , char *argv[] ) {

pid_t pid = fork ();

if ( pid != 0 ) {
printf ( "%i" , pid );
exit ( 0 ); }

system ( argv [1] );

}
Damit bekomm ich mit `run 'sleep 100'` (als Testanwendung) die PID ausgegeben. Ich kann auch Zeilen mit ; getrennt als ganzes Script uebergeben, mit `run 'wget -O download http://www.cache.all && notify-send info "Download fertig."; echo Juhey\!', oder so.

Aber mach ich z. B. pid=`run 'sleep 100'` oder pid=$(run 'sleep 100') dann klappt das nicht - nervt schon.
Watt about the non-digital!?

Benutzeravatar
Meillo
Moderator
Beiträge: 9253
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash: wait und &; kann man in der bash soz auch forken?

Beitrag von Meillo » 11.05.2010 13:54:41

Und die Variable $! für die PID des zuletzt gestarteten Hintergrundprozesses löst das Problem auch nicht?

Ich steiger leider noch nicht ganz durch *wozu* das brauchst.
Use ed once in a while!

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Re: bash: wait und &; kann man in der bash soz auch forken?

Beitrag von chabayo » 11.05.2010 15:20:51

Wozu schon...um klueger zu werden *grins*

Niet. Programm ist, wenn ich was downloade moechte ich den Balken von wget nicht haben, darum --quiet. Gleichzeitig soll mir notify-send und sb-beep sagen das der Download beendet ist. Wenn wget abschmiert weil der Server keine Datei herausrueckt krieg ich das aber (warm?) nicht mit.

Also schick ich den Prozess in den Hintergrund, lass mir gleich mal mit ls zeigen ob die Datei 'waechst', und kann geradewegs weiter...

Btw. das $! reicht vollkommen und war auch genau das was ich gesucht habe, danke.
Watt about the non-digital!?

Antworten