Discussion:
Ps aux Frage
(zu alt für eine Antwort)
Daniel Rafflenbeul
2011-03-19 10:02:46 UTC
Permalink
hyy

Wie schon mal gesagt, es geht um inadyn-mt bei mir..
Dieses Programm soll die IP dynamisch updaten.
Komischerweise beendet sich dieses Programm ohne speziellen Fehler .
So ala Ich habe geupdatet also kann ich aufhören.


Ich weiß es nicht....


Nur, in den Parametern des Programmes ist einer dabei um das Programm in
im Background laufen zu lassen.

Der Ansatz es mit pid=$!
zu machen scheint nicht zu funktionieren , auch der Programmstart mit inadyn
& bringt in diese Richtung keine Ausgabe.

Wie also kann ich die Pid dieses gestarteten Programmes auslesen ??


"Alexander Skwar" schrieb im Newsbeitrag news:gxqK6-4tE-***@gated-at.bofh.it...

Hi!
Halloele..
Folgendes Problem ..
Ich starte ein Programm welches eigentlich durchgehend im Background
laufen soll.
Leider macht dieses Programm das nicht und ab und an beendet sich dieses
Programm.
Dieses Programm starten. (Es schreibt selber leider kein Pidfile)
prg &
Dann irgendwie auslesen mit welcher Pid es gestartet wurde und in ein
Pidfile schreiben.
pid=$!
echo $pid > pidfile
Dann per cron nachfragen alle xyz Minuten ob dieses Programm mit der Pid
noch läuft.
ps -p $(cat pidfile)
bzw.
pgrep prg
Läuft nicht mehr, dann neu starten
pgrep prg > /dev/null 2>&1 || prg
bzw.
ps -p $(cat pidfile) > /dev/null 2>&1 || prg

Bei dem "ps -p" Ansatz hast Du das thoretische Problem,
das es durchaus sein könnte, das irgendein anderes
Programm die PID "Deines" Programmes "recycled" hat.
Alexander
--
↯ Lifestream (Twitter, Blog, …) ↣ http://alexs77.soup.io/ ↯
↯ Chat (Jabber/Google Talk) ↣ ***@gmail.com , AIM: alexws77 ↯
--
Zum AUSTRAGEN schicken Sie eine Mail an
debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org
(engl)
Archive:
http://lists.debian.org/AANLkTinU0wv2D1qawJSbq_FAUwezdCbuW8EUEFSOC-***@mail.gmail.com
--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-german-***@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an ***@lists.debian.org (engl)
Archive: http://lists.debian.org/***@mid.individual.net
Alexander Skwar
2011-03-19 10:48:44 UTC
Permalink
Hallo.

Ich kenne das Programm nicht. Wenn es einen Parameter gibt um das
Programm direkt zu "backgrounden", dann verwundert es nicht, das Folge
folgendes _nicht_ klappt:

PrG &
Pid=$!

Kann man das Programm dazu bewegen, im Vordergrund zu bleiben?
Dann würde der Ansatz klappen.

Wenn nicht, dann quasi so:

PrG
Pid=$(pgreg PrG)

Oder vlt auch mal schauen, ob start-stop-daemon helfen könnte.

http://manpages.ubuntu.com/manpages/dapper/de/man8/start-stop-daemon.8.html

Alexander
Post by Daniel Rafflenbeul
hyy
Wie schon mal gesagt, es geht um inadyn-mt bei mir..
Dieses Programm soll die IP dynamisch updaten.
Komischerweise beendet sich dieses Programm ohne speziellen Fehler .
So ala Ich habe geupdatet also kann ich aufhören.
Ich weiß es nicht....
Nur, in den Parametern des Programmes ist einer dabei um das
Programm in
im Background laufen zu lassen.
Der Ansatz es mit pid=$!
zu machen scheint nicht zu funktionieren , auch der Programmstart
mit inadyn & bringt in diese Richtung keine Ausgabe.
Wie also kann ich die Pid dieses gestarteten Programmes auslesen ??
at.bofh.it...
Hi!
Halloele..
Folgendes Problem ..
Ich starte ein Programm welches eigentlich durchgehend im
Background laufen soll.
Leider macht dieses Programm das nicht und ab und an beendet sich
dieses Programm.
Dieses Programm starten. (Es schreibt selber leider kein Pidfile)
prg &
Dann irgendwie auslesen mit welcher Pid es gestartet wurde und in
ein Pidfile schreiben.
pid=$!
echo $pid > pidfile
Dann per cron nachfragen alle xyz Minuten ob dieses Programm mit
der Pid noch läuft.
ps -p $(cat pidfile)
bzw.
pgrep prg
Läuft nicht mehr, dann neu starten
pgrep prg > /dev/null 2>&1 || prg
bzw.
ps -p $(cat pidfile) > /dev/null 2>&1 || prg
Bei dem "ps -p" Ansatz hast Du das thoretische Problem,
das es durchaus sein könnte, das irgendein anderes
Programm die PID "Deines" Programmes "recycled" hat.
Alexander
--
↯ Lifestream (Twitter, Blog, …) ↣ http://alexs77.soup.io/


--
--
Alexander Skwar
2011-03-19 11:01:49 UTC
Permalink
Öhm...

Du schriebst, das pid=$! keine Ausgabe brächte?

Also, *das* kann denn eigtl. doch nicht sein…

Selbst folgendes klappt (getestet):

ls &
# warten bis ls fertig ist…
pid=$!

Dann steht in der Variable $pid die PID, die ls zugeteilt bekam. Wenn
das bei Dir nicht klappt, dann machst Du irgendwas falchs.

Alexander
Post by Daniel Rafflenbeul
hyy
Wie schon mal gesagt, es geht um inadyn-mt bei mir..
Dieses Programm soll die IP dynamisch updaten.
Komischerweise beendet sich dieses Programm ohne speziellen Fehler .
So ala Ich habe geupdatet also kann ich aufhören.
Ich weiß es nicht....
Nur, in den Parametern des Programmes ist einer dabei um das
Programm in
im Background laufen zu lassen.
Der Ansatz es mit pid=$!
zu machen scheint nicht zu funktionieren , auch der Programmstart
mit inadyn & bringt in diese Richtung keine Ausgabe.
Wie also kann ich die Pid dieses gestarteten Programmes auslesen ??
at.bofh.it...
Hi!
Halloele..
Folgendes Problem ..
Ich starte ein Programm welches eigentlich durchgehend im
Background laufen soll.
Leider macht dieses Programm das nicht und ab und an beendet sich
dieses Programm.
Dieses Programm starten. (Es schreibt selber leider kein Pidfile)
prg &
Dann irgendwie auslesen mit welcher Pid es gestartet wurde und in
ein Pidfile schreiben.
pid=$!
echo $pid > pidfile
Dann per cron nachfragen alle xyz Minuten ob dieses Programm mit
der Pid noch läuft.
ps -p $(cat pidfile)
bzw.
pgrep prg
Läuft nicht mehr, dann neu starten
pgrep prg > /dev/null 2>&1 || prg
bzw.
ps -p $(cat pidfile) > /dev/null 2>&1 || prg
Bei dem "ps -p" Ansatz hast Du das thoretische Problem,
das es durchaus sein könnte, das irgendein anderes
Programm die PID "Deines" Programmes "recycled" hat.
Alexander
--
↯ Lifestream (Twitter, Blog, …) ↣ http://alexs77.soup.io/


--
--
Loading...