Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Andreas Pakulat
On 29.06.06 17:23:52, Martin Steigerwald wrote:
> Am Donnerstag 29 Juni 2006 17:05 schrieb Andreas Pakulat:
> > On 29.06.06 16:56:14, Martin Steigerwald wrote:
> > > Hallo,
> > >
> > > wie starte ich ein Skript so im Hintergrund, dass das aufrufende
> > > Shell-Skript vollständig beendet werden kann, also keine Jobs, keine
> > > Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss.
> >
> > screen oder nohup. (Ersteres hat ein eigenes Paket)
> 
> Hallo Andreas,
> 
> screen funktioniert bei mir nicht von einem Skript aus. Ich sehe in der 
> Manpage auch keine Optionen, die daran etwas ändern würden... Screen sagt 
> einfach:
> 
> Jun 29 16:31:10 deepdance ifplugd(eth0)[1836]: client: Must be connected 
> to a terminal.
> 
> (Ich denke mal, dass das screen ist, der das da sagt..., auf jeden Fall 
> wird mein Skript nicht gestartet).

Dazu kenn ich screen zu wenig, bleibt die nohup-Loesung.

Andreas

-- 
Today is National Existential Ennui Awareness Day.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Andreas Pakulat
On 29.06.06 17:17:48, Martin Steigerwald wrote:
> Am Donnerstag 29 Juni 2006 17:03 schrieb Christian Frommeyer:
> > Am Donnerstag 29 Juni 2006 16:56 schrieb Martin Steigerwald:
> > > wie starte ich ein Skript so im Hintergrund, dass das aufrufende
> > > Shell-Skript vollständig beendet werden kann, also keine Jobs, keine
> > > Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss.
> > > Einfach: Starte mir das im Hintergrund, mach dann weiter als ob
> > > nichts gewesen wäre... ich brauche keine Returncodes.
> >
> > nohup ist Dein Freund (war in den letzten Tagen IIRC schon mal hier zu
> > lesen)
> 
> Hallo,
> 
> Mit "nohup /etc/chrony/network-up.sh" wird genauso wie bei & ein Job 
> erzeugt, der jedoch im Unterschied zu & nicht mal im Hintergrund 
> gestartet wird:

Deswegen benutzt man & dazu ;-)

> [EMAIL PROTECTED]:~ -> nohup /etc/chrony/network-up.sh
> nohup: hänge Ausgabe an »nohup.out« an
> 
> [Die Shell kehrt nicht sofort zum Prompt zurück, ich drücke Strg-C]
> [3]   Donenohup /etc/chrony/network-up.sh

Dafuer gibts , damit schickst du den Prozess zum schlafen.
Anschliessend kannst du ihn mit "fg" oder "bg" in den Vorder oder
Hintergrund schicken.

Andreas

-- 
Your reasoning is excellent -- it's only your basic assumptions that are wrong.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Evgeni Golov
On Thu, 29 Jun 2006 17:17:48 +0200 Martin Steigerwald
<[EMAIL PROTECTED]> wrote:

> Am Donnerstag 29 Juni 2006 17:03 schrieb Christian Frommeyer:
> > Am Donnerstag 29 Juni 2006 16:56 schrieb Martin Steigerwald:
> > > wie starte ich ein Skript so im Hintergrund, dass das aufrufende
> > > Shell-Skript vollständig beendet werden kann, also keine Jobs,
> > > keine Ein- / Ausgabekanäle, kein gar nichts noch geschlossen
> > > werden muss. Einfach: Starte mir das im Hintergrund, mach dann
> > > weiter als ob nichts gewesen wäre... ich brauche keine
> > > Returncodes.
> >
> > nohup ist Dein Freund (war in den letzten Tagen IIRC schon mal hier
> > zu lesen)
> 
> Hallo,
> 
> Mit "nohup /etc/chrony/network-up.sh" wird genauso wie bei & ein Job 
> erzeugt, der jedoch im Unterschied zu & nicht mal im Hintergrund 
> gestartet wird:
> 
> [EMAIL PROTECTED]:~ -> nohup /etc/chrony/network-up.sh
> nohup: hänge Ausgabe an »nohup.out« an
> 
> [Die Shell kehrt nicht sofort zum Prompt zurück, ich drücke Strg-C]
> [3]   Donenohup /etc/chrony/network-up.sh
> 
> Da wird es ebenso ein Timeout geben, wenn ifplugd vom Init-Skript 
> gestartet wird.
> 
> Oder muss ich nohup irgendwie anders verwenden? Die manpage ist ja
> recht übersichtlich.

nohup bin &



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Christian Frommeyer
Am Donnerstag 29 Juni 2006 17:17 schrieb Martin Steigerwald:
> Mit "nohup /etc/chrony/network-up.sh" wird genauso wie bei & ein Job
> erzeugt, der jedoch im Unterschied zu & nicht mal im Hintergrund
> gestartet wird:

Ja, aber der Job überlebt ein beenden der Shell.

vielleicht hilft Dir auch sowas:
bash -c " &"

Gruß Chris

-- 
A: because it distrupts the normal process of thought
Q: why is top posting frowned upon



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Reinhold Plew
Hi,

Martin Steigerwald wrote:
> Am Donnerstag 29 Juni 2006 17:03 schrieb Christian Frommeyer:
>> Am Donnerstag 29 Juni 2006 16:56 schrieb Martin Steigerwald:
>> > wie starte ich ein Skript so im Hintergrund, dass das aufrufende
>> > Shell-Skript vollständig beendet werden kann, also keine Jobs, keine
>> > Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss.
>> > Einfach: Starte mir das im Hintergrund, mach dann weiter als ob
>> > nichts gewesen wäre... ich brauche keine Returncodes.
>>
>> nohup ist Dein Freund (war in den letzten Tagen IIRC schon mal hier zu
>> lesen)
> 
> Hallo,
> 
> Mit "nohup /etc/chrony/network-up.sh" wird genauso wie bei & ein Job 
> erzeugt, der jedoch im Unterschied zu & nicht mal im Hintergrund 
> gestartet wird:
> 
> [EMAIL PROTECTED]:~ -> nohup /etc/chrony/network-up.sh
> nohup: hänge Ausgabe an »nohup.out« an
> 
> [Die Shell kehrt nicht sofort zum Prompt zurück, ich drücke Strg-C]
> [3]   Donenohup /etc/chrony/network-up.sh
> 
> Da wird es ebenso ein Timeout geben, wenn ifplugd vom Init-Skript 
> gestartet wird.
> 
> Oder muss ich nohup irgendwie anders verwenden? Die manpage ist ja recht 
> übersichtlich.

das musst Du so aufrufen: "nohup /etc/chrony/network-up.sh &"
Dann funktioniert es wie gwuenscht.

hth
Reinhold


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Martin Steigerwald
Am Donnerstag 29 Juni 2006 17:05 schrieb Andreas Pakulat:
> On 29.06.06 16:56:14, Martin Steigerwald wrote:
> > Hallo,
> >
> > wie starte ich ein Skript so im Hintergrund, dass das aufrufende
> > Shell-Skript vollständig beendet werden kann, also keine Jobs, keine
> > Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss.
>
> screen oder nohup. (Ersteres hat ein eigenes Paket)

Hallo Andreas,

screen funktioniert bei mir nicht von einem Skript aus. Ich sehe in der 
Manpage auch keine Optionen, die daran etwas ändern würden... Screen sagt 
einfach:

Jun 29 16:31:10 deepdance ifplugd(eth0)[1836]: client: Must be connected 
to a terminal.

(Ich denke mal, dass das screen ist, der das da sagt..., auf jeden Fall 
wird mein Skript nicht gestartet).

Grüße,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Martin Steigerwald
Am Donnerstag 29 Juni 2006 17:03 schrieb Christian Frommeyer:
> Am Donnerstag 29 Juni 2006 16:56 schrieb Martin Steigerwald:
> > wie starte ich ein Skript so im Hintergrund, dass das aufrufende
> > Shell-Skript vollständig beendet werden kann, also keine Jobs, keine
> > Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss.
> > Einfach: Starte mir das im Hintergrund, mach dann weiter als ob
> > nichts gewesen wäre... ich brauche keine Returncodes.
>
> nohup ist Dein Freund (war in den letzten Tagen IIRC schon mal hier zu
> lesen)

Hallo,

Mit "nohup /etc/chrony/network-up.sh" wird genauso wie bei & ein Job 
erzeugt, der jedoch im Unterschied zu & nicht mal im Hintergrund 
gestartet wird:

[EMAIL PROTECTED]:~ -> nohup /etc/chrony/network-up.sh
nohup: hänge Ausgabe an »nohup.out« an

[Die Shell kehrt nicht sofort zum Prompt zurück, ich drücke Strg-C]
[3]   Donenohup /etc/chrony/network-up.sh

Da wird es ebenso ein Timeout geben, wenn ifplugd vom Init-Skript 
gestartet wird.

Oder muss ich nohup irgendwie anders verwenden? Die manpage ist ja recht 
übersichtlich.

Hmmm, vielleicht schreib ich mir am besten selbst ein C-Programm, das mir 
das erledigt... das kann doch auch unter Linux nicht so schwer sein...

> > #/etc/chrony/network-up.sh &1 >/dev/nil &
>
> Das sollte /dev/null heißen oder nicht?

Natürlich... manche AmigaOS-Einflüsse bleiben mir bis heute erhalten ;-).

Grüße,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Andreas Pakulat
On 29.06.06 16:56:14, Martin Steigerwald wrote:
> 
> Hallo,
> 
> wie starte ich ein Skript so im Hintergrund, dass das aufrufende 
> Shell-Skript vollständig beendet werden kann, also keine Jobs, keine 
> Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss. 

screen oder nohup. (Ersteres hat ein eigenes Paket)

Andreas

-- 
There was a phone call for you.


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Re: Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Christian Frommeyer
Am Donnerstag 29 Juni 2006 16:56 schrieb Martin Steigerwald:
> wie starte ich ein Skript so im Hintergrund, dass das aufrufende
> Shell-Skript vollständig beendet werden kann, also keine Jobs, keine
> Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss.
> Einfach: Starte mir das im Hintergrund, mach dann weiter als ob
> nichts gewesen wäre... ich brauche keine Returncodes.

nohup ist Dein Freund (war in den letzten Tagen IIRC schon mal hier zu 
lesen)

> #/etc/chrony/network-up.sh &1 >/dev/nil &

Das sollte /dev/null heißen oder nicht?

Gruß Chris

-- 
A: because it distrupts the normal process of thought
Q: why is top posting frowned upon



Skript im Hintergrund starten

2006-06-29 Diskussionsfäden Martin Steigerwald

Hallo,

wie starte ich ein Skript so im Hintergrund, dass das aufrufende 
Shell-Skript vollständig beendet werden kann, also keine Jobs, keine 
Ein- / Ausgabekanäle, kein gar nichts noch geschlossen werden muss. 
Einfach: Starte mir das im Hintergrund, mach dann weiter als ob nichts 
gewesen wäre... ich brauche keine Returncodes.

Für Amiga-Fans: Ich suche das Linux-Equivalent zu:

run nil: einskript

Ich hab folgende Varianten versucht:

[EMAIL PROTECTED]:~ -> cat /etc/network/if-up.d/chrony
#!/bin/sh

at -f /etc/chrony/network-up.sh now
#/etc/chrony/network-up.sh &1 >/dev/nil &
#screen /etc/chrony/network-up.sh

Mit at klappt es, doch das obiges Skript wird bei einem Neustart des 
Rechners vor der Initialisierung von atd ausgeführt... Natürlich kann ich 
atd auch früher starten lassen, noch lieber wäre es mir jedoch, wenn ich 
ohne Änderungen an der Startreihenfolge, also in dem Fall ohne atd 
auskommen kann.

Mit dem &-Zeichen hängt eben ein Job im Hintergrund rum 
und "/etc/init.d/ifplug start" läuft in ein Timeout. Der Job ist also 
offenbar nicht vollständig unabhängig vom Shell-Prozess, indem obiges 
Skript abläuft. Gibt es eine Möglichkeit mit "&" das zweite Shell-Skript 
wirklich komplett unabhängig  im Hintergrund laufen zu lassen?

Mit "screen" funktioniert es nur in einem Terminal, nicht von einem Skript 
aus - was für einen full screen window manager ja irgendwie auch Sinn 
macht ;).

Noch irgendeine Idee?

Grüße,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7