Tim Chase <python.l...@tim.thechases.com>: > This works based on my poking at it in both Py2 and Py3:
Great info, Tim. A word a warning: your code doesn't lock /var/run/utmp before access, which is a race condition. The file may be updated at any time, and ordinary file reads may yield corrupted records. The library functions getutline(), pututline() etc lock the file internally (although that is not documented). You can see the (advisory record) locking in action by running the command strace who Since the locking scheme hasn't been documented, the only safe way to read /var/run/utmp is through the C API functions. Another thing is that, as stated before, the runlevel business is legacy. It is still supported by systemd-update-utmp, but for how long is anybody's guess. Marko -- https://mail.python.org/mailman/listinfo/python-list