local unix = require 'unix' Write('\r\n') Write('redbean\r\n') Write('

UNIX Information Demo

\r\n') Write('\r\n') Write('
\r\n') Write('
unix.getuid()\r\n') Write('
%d\r\n' % {unix.getuid()}) Write('
unix.getgid()\r\n') Write('
%d\r\n' % {unix.getgid()}) Write('
unix.getpid()\r\n') Write('
%d\r\n' % {unix.getpid()}) Write('
unix.getppid()\r\n') Write('
%d\r\n' % {unix.getppid()}) Write('
unix.getpgrp()\r\n') Write('
%d\r\n' % {unix.getpgrp()}) Write('
unix.umask()\r\n') mask = unix.umask(027) unix.umask(mask) Write('
%.4o\r\n' % {mask}) Write('
unix.getsid(0)\r\n') sid, errno = unix.getsid(0) if sid then Write('
%d\r\n' % {sid}) else Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) end Write('
unix.gethostname()\r\n') Write('
%s\r\n' % {EscapeHtml(unix.gethostname())}) Write('
unix.getcwd()\r\n') Write('
%s\r\n' % {EscapeHtml(unix.getcwd())}) function PrintResourceLimit(name, id) soft, hard, errno = unix.getrlimit(id) Write('
getrlimit(%s)\r\n' % {name}) if soft then Write('
') Write('soft ') if soft == -1 then Write('∞') else Write('%d' % {soft}) end Write('
\r\n') Write('hard ') if hard == -1 then Write('∞') else Write('%d' % {hard}) end Write('\r\n') else Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) end end PrintResourceLimit('RLIMIT_AS', unix.RLIMIT_AS) PrintResourceLimit('RLIMIT_RSS', unix.RLIMIT_RSS) PrintResourceLimit('RLIMIT_CPU', unix.RLIMIT_CPU) PrintResourceLimit('RLIMIT_FSIZE', unix.RLIMIT_FSIZE) PrintResourceLimit('RLIMIT_NPROC', unix.RLIMIT_NPROC) PrintResourceLimit('RLIMIT_NOFILE', unix.RLIMIT_NOFILE) Write('
unix.siocgifconf()\r\n') Write('
\r\n') ifs, errno = unix.siocgifconf() if ifs then for i = 1,#ifs do if ifs[i].netmask ~= 0 then cidr = 32 - Bsf(ifs[i].netmask) else cidr = 0 end Write('%s %s/%d
\r\n' % {EscapeHtml(ifs[i].name), FormatIp(ifs[i].ip), cidr}) end else Write('%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_DEBUG) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_DEBUG)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_REUSEADDR) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_REUSEADDR)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_REUSEPORT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_REUSEPORT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_KEEPALIVE) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_KEEPALIVE)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_NODELAY) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_NODELAY)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, secs, micros = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_RCVTIMEO) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_RCVTIMEO)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d sec %d µs\r\n' % {secs, micros}) end errno, secs, micros = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_SNDTIMEO) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_SNDTIMEO)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d sec %d µs\r\n' % {secs, micros}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_DONTROUTE) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_DONTROUTE)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_SNDBUF) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_SNDBUF)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_RCVBUF) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_RCVBUF)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_FASTOPEN) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_FASTOPEN)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_BROADCAST) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_BROADCAST)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_CORK) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_CORK)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_QUICKACK) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_QUICKACK)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_DEFER_ACCEPT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_DEFER_ACCEPT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, enabled = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_FASTOPEN_CONNECT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_FASTOPEN_CONNECT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%s\r\n' % {enabled}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_SNDLOWAT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_SNDLOWAT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_RCVLOWAT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_SOCKET, unix.SO_RCVLOWAT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_KEEPCNT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_KEEPCNT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_MAXSEG) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_MAXSEG)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_SYNCNT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_SYNCNT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_NOTSENT_LOWAT) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_NOTSENT_LOWAT)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_WINDOW_CLAMP) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_WINDOW_CLAMP)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_KEEPIDLE) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_KEEPIDLE)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end errno, bytes = unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_KEEPINTVL) Write('
unix.getsockopt(GetClientFd(), unix.SOL_TCP, unix.TCP_KEEPINTVL)\r\n') if errno then Write('
%s\r\n' % {EscapeHtml(unix.strerrno(errno))}) else Write('
%d\r\n' % {bytes}) end Write('
unix.environ()\r\n') Write('
\r\n') Write('\r\n')