A parent process won't die when a child dies unless they are /linked/, as far as I know. It's links that determine process deaths, not who spawned who.
Yes, they have to be explicitly linked.
Should it also be possible to link processes which do not have a parent-child relationship?
Yes, links are not just parent-child. See...
http://erlang.org/course/error_handling.html#layer
Also links in Erlang are two-way...
Are links two-way...
If a process dies, is it possible that kill signals will be sent to more than one linked process at a time, or is there ordinarily just one linked process that would be affected?
There could be multiple. (A perhaps-obvious-to-most note: these are not OS kill signals. I'm not sure how familiar people are here with Erlang's lightweight processes.)
Also, there's a flag to choose what will happen when a linked process dies. Either the receiving process dies too (which could in turn cause other linked processes to die), or it gets a message in its mailbox, which it can then handle any way it pleases just like every other kind of message.
Providing two behaviors, kill or send message, doesn't sound too hard. I think I will start by implementing the send message version, then modify it to respond to such a flag. Of course, getting to the point of providing even one of those behaviors could be tricky.
My understanding of Erlang's internals is a bit fuzzy so some of this is may be incorrect: Each node has a kind of process monitor. Each process in the node has a mailbox. Communication between nodes essentially occurs at the node level (which cuts down the number of real connections a good bit.) When a connection is lost between nodes (and perhaps cannot be re-established reasonably), any linked processes will be killed by the process monitor or the process monitor will put a message in the process' mailbox if that is the nature of the link.
Likewise if a process exits but the node and connection are ok, then the process monitor would send word of this to the linked processes. Then the behavior above kicks in just as in the lost connection case.
-Patrick