Perl 6 access to Utmp entries on Unix-like systems
Clone or download
Latest commit b36d7b0 Apr 2, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin moved the entry format into the class May 7, 2015
lib/Sys Up version Apr 2, 2018
src Rework the way the enum for ut_type is built Apr 2, 2018
t Typo Sep 30, 2017
.gitignore Add the .precomp to .gitignore Dec 4, 2015
.travis.yml Alter travis config to use zef Aug 2, 2017 Make zef compatible Jan 24, 2017
Changes Up version Apr 2, 2018
LICENCE rename LICENCE as en_GB May 30, 2016
META6.json Up version Apr 2, 2018 No panda Aug 21, 2017


Perl 6 access to Utmp entries on Unix-like systems.


Sys::Utmp provides access to the Unix user accounting data that may be described in the utmp(5) manpage. Briefly it records each logged in user (and some other data regarding the OS lifetime.)

It will prefer to use the getutent() function from the system C library if it is available but will attempt to provide its own if the OS doesn't have that. Because the implementation of getutent() differs between various OS and the C part of this module needs to provide a consistent interface to Perl it may not represent all the data that is available on a particular system, similarly there may be documented attributes that are not captured on some OS.


Because the various Unix-like systems have varying implementations of the utmp facility this uses a small shared library written in C to provide a consistent interface to the Perl library, this means that you will require a working C compiler environment to be able to install this module.

It is entirely possible that the assumptions that I have made in the C part aren't correct for your system and that this will not install or work properly, if this is the case please see the "Support" section below.

Assuming you have a working Rakudo Perl 6 installation you should be able to install this with zef :

# From the source directory

zef install .

# Remote installation

zef install Sys::Utmp


Suggestions/patches are welcomed via github at:

I'm not able to test on a wide variety of platforms so any help there would be appreciated. Also the assumptions in the C library are based on those used in the XS part of the similarly named Perl 5 module which was written when I had access to different systems, but time moves on and operating systems change and some of this could be completely incorrect for some systems where it previously worked. So if you find that this doesn't compile or work properly on your system and you can work out why the patches will be most welcome.


This is free software.

Please see the LICENCE file in the distribution

© Jonathan Stowe 2015, 2016, 2017