On Thu, Nov 5, 2009 at 11:15 PM, Lloyd
Hi, We want to have a program which cannot be terminated by the user (even admin). I think the only way to do this is to write a watchdog process. So there will be a master and a slave process, the master will be the active process, and the slave keep on watching the master. I case if the master is terminated, the slave become master and initiates a new slave process. But we need to transfer (or share) the process state of "old master" with the "new master" (So that the new master can continue form where the old master has stopped). Is this possible with shared memory?
That might be hard, I can think of a number of ways to kill an entire tree of processes. Unless, say you are running on windows, you inject code into the running process system or winlogin.exe and have that act as your watchdog, or insert a low-level system hook to watch for all events passing through windows and block any that try to destroy your processes, but even all of that can be worked around. Security at the OS level, block access to the user would probably be the best bet (easier and safer on *nix then Windows). And of course, nothing helps if they have physical access to the machine. :)