PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Programme parallel starten (mit Zeitoffset)


mekakic
2011-07-19, 11:44:00
Ich würde gern zwei Instanzen eines Programm gleichzeitig starten lassen. Das geht ja auf der Unix Shell ganz gut mit dem "&" Operator. Was ich aber eigentlich möchte ist Programm Zwei mit einem Zeitoffset von 500ms später starten lassen. Geht das auf Konsolenebene?

Gast
2011-07-19, 12:05:05
man sleep ;)

Baalzamon
2011-07-19, 12:14:07
sleep kann leider nur ganzzahlige Sekundenwerte. Wenn du also tatsächlich den exakten Zeitraum von 0.5 Sekunden brauchst musst du auf usleep (http://linux.die.net/man/3/usleep) oder nanosleep (http://linux.die.net/man/2/nanosleep) ausweichen.

mekakic
2011-07-19, 13:09:19
auf der Konsole gibt es doch kein usleep und nanosleep? Hab zumindest nichts derartiges finden können.

mrt
2011-07-19, 13:17:09
sleep kann leider nur ganzzahlige Sekundenwerte. Wenn du also tatsächlich den exakten Zeitraum von 0.5 Sekunden brauchst musst du auf usleep (http://linux.die.net/man/3/usleep) oder nanosleep (http://linux.die.net/man/2/nanosleep) ausweichen.
Kommt auf die Implementierung an, die GNU-Version (http://www.gnu.org/s/coreutils/manual/html_node/sleep-invocation.html) (in coreutils) auf Linux kann auch Fließkommawerte.

(del)
2011-07-19, 14:17:42
also:
start_program & sleep 0.5; start_program

Baalzamon
2011-07-19, 14:36:29
Kommt auf die Implementierung an, die GNU-Version (http://www.gnu.org/s/coreutils/manual/html_node/sleep-invocation.html) (in coreutils) auf Linux kann auch Fließkommawerte.
Jo sorry, ich war gedanklich mal wieder in der Solaris Welt. X-D

Gast
2011-07-19, 18:56:31
du könntest die halbe sekunde mit perl machen, allerdings hast du evtl. dann einen leicht größeren offset wegen dem perl-start:

perl -e 'select(undef, undef, undef, 0.5);'

damit gehts immerhin mit boardmitteln.