# Distributed under the terms of the GNU General Public License v2
from portage import os
+import platform
getloadavg = getattr(os, "getloadavg", None)
if getloadavg is None:
Raises OSError if the load average was unobtainable.
"""
try:
- loadavg_str = open('/proc/loadavg').readline()
- except IOError:
+ if platform.system() in ["AIX", "HP-UX"]:
+ loadavg_str = os.popen('LANG=C /usr/bin/uptime 2>/dev/null').readline().split()
+ while loadavg_str[0] != 'load' and loadavg_str[1] != 'average:':
+ loadavg_str = loadavg_str[1:]
+ loadavg_str = loadavg_str[2:5]
+ loadavg_str = [x.rstrip(',') for x in loadavg_str]
+ loadavg_str = ' '.join(loadavg_str)
+ else:
+ loadavg_str = open('/proc/loadavg').readline()
+ except (IOError, IndexError):
# getloadavg() is only supposed to raise OSError, so convert
raise OSError('unknown')
loadavg_split = loadavg_str.split()