fork() und execv()

servus,
i start mehrere kindprozesse fun a grafischer oberfläche aus. es problem isch
dass i mir nit sicher bin ob i de osturzsicher schreiben konn. *snief* also
waret es fein, wenn i die kindprozesse nit mitreiss wenn der aufriafende
prozess oschmiart. muas i de nocher in init-prozess unhengen? wenn jo, wia moch
i dess? und wia kannt men, wenn i die grafische oberfläche nochn osturz wieder
lod, die ehemaligen kindprozesse wieder finden?

cya,
pitiz <csad3124(a)uibk.ac.at>

Peter Moser schrieb:

servus,
i start mehrere kindprozesse fun a grafischer oberfläche aus. es problem isch
dass i mir nit sicher bin ob i de osturzsicher schreiben konn. *snief* also
waret es fein, wenn i die kindprozesse nit mitreiss wenn der aufriafende
prozess oschmiart. muas i de nocher in init-prozess unhengen? wenn jo, wia moch
i dess? und wia kannt men, wenn i die grafische oberfläche nochn osturz wieder
lod, die ehemaligen kindprozesse wieder finden?

Ich bin dafür, dass wir uns auf deutsche, italienische und englische
Mails beschränken, damit möglichst viele unsere Diskussionen verfolgen
können
.

cu Martin

Martin Senoner wrote:

Ich bin dafür, dass wir uns auf deutsche, italienische und englische
Mails beschränken, damit möglichst viele unsere Diskussionen verfolgen
können

bin ich auch dafür. schließlich liegt es doch im eigenen interesse, wenn
die mails in einer vernünftigen zeit entziffert werden können.

gruß andreas

Peter Moser wrote:
[...]

also waret es fein, wenn i die kindprozesse nit mitreiss wenn der
aufriafende prozess oschmiart. muas i de nocher in init-prozess
unhengen? wenn jo, wia moch i dess? und wia kannt men, wenn i die
grafische oberfläche nochn osturz wieder lod, die ehemaligen
kindprozesse wieder finden?

Hallo,

Prozesse, die mit fork() generiert wurden, sind meines Wissens nach
vollkommen eigenstaendig. Der child-Prozess bekommt eine _Kopie_ von
Datensegment, Heap und Stack. Deshalb duerfte sich das Problem von
"abgeschmierter Vater-Prozess", der seine Kinder mitreisst, nicht
stellen.
Wenn der Vater-Prozess vor dem Child beendet wird, wird dem child
automatich init (pid=1) als Vater-Prozess zugewiesen. Das kannst du mit
einem kleinem Testprogrmm einfach nachpruefen.

Ich habe keine Ahnung, wie du mit Sicherheit die pids von Child-
Prozessen bekommst, die ein anderer Prozess generiert hat. Die Energie,
das herauszufinden, waere mit Debuggen des Vaterprozesses vielleicht
besser angelegt :slight_smile:

Gruesse,
Thomas

PS:
Die Uni-Bibliothek von uibk.ac.at hat sicher ein Exemplar von W.
Richard Stevens, "Advanced Programming in the UNIX Environment". Es lohnt
sich wirklich, da hineinzuschauen.