I’ll tell you about technical means aimed at limiting your child’s time at the computer. (We won’t be speaking about parental control of porn, social network sites). I don’t offer a ready solution, but I would like to discuss first. Or perhaps it was realized a long time ago.
I’ll tell you how we do it in our family. The children note down the time with an alarm clock, and I look through logs and send SIGSTOP, SIGKILL and IRL sometimes. Such a system is not very convenient, because it requires additional monitoring and does not see how a child used the computer. I only look last through – who logged in and out, so I don’t know who was playing and who was listening to an audiobook. (But the children think I can see everything.)
I was no longer satisfied, and I wanted to add some more automation. First of all it is necessary to decide what you want from such a monitoring system. It is not quite clear what the requirements should be exactly; so I made the following sketch.
- Separation of the child’s activity in several types (games, movies, audiobooks, self-education (reading Wikipedia etc.)). Classification should be made according to two factors: the degree of stress for the eyes and the nervous system and educational development. Most of the games entertain rather than educate and I want to make the child be engaged in useful things.
- Flexible time limiting. For example, audiobooks can be considered harmless, and therefore they shouldn’t be limited. It would be convenient for the child to transfer the unused time for tomorrow or even borrow, but it should be limited (per day, per session, etc.).
- Convenient and visual indication of the remaining time, and the line of warnings (with killing of all processes and banning of the user’s account).
- Logging: how much time and a user spent.
- Take into account there are several computers. If the children want to play in the net, there is no reason to deny.
As for hack stability, it is enough to block the simplest restrictions. I don’t think it is possible to make it reliable, if you have physical access to the device, it’s easy to get root rights. And if the child is able to do this, there is no need to control it.
The basic ideas for Linux are as follows.
- Collecting statistics on processes.
- Daemon which looks through these statistics and make decisions.
- Notification system: a window and a timer popping up in the status bar (although I don’t use the status bar); and in difficult cases by sending SIGSTOP and SIGCONT in some seconds (but not all processes can survive it).
- Well and repressive ways (blocking the screen with screensaver and then sudo -u luser kill -9 -1) – this is too easy.
It is not very clear how to classify processes. I’ll have to do it either manually or use heuristics like “everything from /usr/games is games.”
Well, I haven’t really thought through what and how I want to realize it. So I’d be glad to get useful technical, medical, methodological and pedagogical comments.