Yedidyah Bar-David wrote:

I agree that using ptrace does not sound very clean. I never used ptrace
directly, only using strace/ltrace, and these two do sometimes have
issues, which might be bugs in them but also in ptrace.
The very fact you bundle ltrace into it suggests that ptrace is not the problem. Ltrace uses LD_PRELOAD and not ptrace :-)

Either way, this use of ptrace is so basic that I doubt I'll run into any such problems.
 I also read in
lwn some time ago that there is some project to reimplemnt ptrace using
some new tracing subsystem, partly because ptrace is considered broken.
From what I read, the reason for the replacement is that the new system is "more complete". FC9 has it and it breaks fakeroot-ng in quite horrendous ways, can't say I'm thrilled about it :-(. I have not heard of instabilities within ptrace being the reasons (besides the obvious platform dependence it has, which is not an issue in this case).
Don't you have any control on the process you want to restart?
I have full control. The main loop is running through my code, and the daemon has an open socket (SEQPACKET) to my controlling daemon. I can even detect that it quit by the fact that the SEQPACKET socket will disconnect. The problem is that these are all generic interfaces, and making allowances for detecting that this particular socket belongs to the SNMP agent, or defining a new message to notify of exit are more work than the current implementation.

If ptrace is unreliable, then that more work is, of course, necessary. If not, I'd rather not invest it.

Lots of intelligent alternative solutions trimmed because they are irrelevant.

Shachar

_______________________________________________
Linux-il mailing list
[email protected]
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il

Reply via email to