How do you define inactivity? If I do
$ nohup ./computational_intense_and_runs_for_100_hours.py &
Do you just kill the process (or stop the container)? In essence Jupyter is a graphical rich shell, so you providing free *nix machines - don't underestimate how this feature can be exploited (e.g. CoCalc limits at least internet access for free instances).
Second, yes. The container will be killed after 10min unless we keep detecting activity of your user in the platform. So, basically the rule is: If we don't detect user's activity after 10mins we kill all containers for that user.
You could hack this by doing periodical requests to the API to simulate activity, but at some point your JWT will be expired and requests will start failing.
In any case, other students won't be affected at all by the appropriate usage and we will end up banning your account at some point when we detect it.
We also limit the amount of parallel running containers to avoid unlimited containers running at the same time.
Do you see any drawbacks on this implementation? Happy to hear about possible improvements.