我们从Python开源项目中,提取了以下25个代码示例,用于说明如何使用psutil.users()。
def test_users_mocked(self): # Make sure ':0' and ':0.0' (returned by C ext) are converted # to 'localhost'. with mock.patch('psutil._pslinux.cext.users', return_value=[('giampaolo', 'pts/2', ':0', 1436573184.0, True)]) as m: self.assertEqual(psutil.users()[0].host, 'localhost') assert m.called with mock.patch('psutil._pslinux.cext.users', return_value=[('giampaolo', 'pts/2', ':0.0', 1436573184.0, True)]) as m: self.assertEqual(psutil.users()[0].host, 'localhost') assert m.called # ...otherwise it should be returned as-is with mock.patch('psutil._pslinux.cext.users', return_value=[('giampaolo', 'pts/2', 'foo', 1436573184.0, True)]) as m: self.assertEqual(psutil.users()[0].host, 'foo') assert m.called
def test_serialization(self): def check(ret): if json is not None: json.loads(json.dumps(ret)) a = pickle.dumps(ret) b = pickle.loads(a) self.assertEqual(ret, b) check(psutil.Process().as_dict()) check(psutil.virtual_memory()) check(psutil.swap_memory()) check(psutil.cpu_times()) check(psutil.cpu_times_percent(interval=0)) check(psutil.net_io_counters()) if LINUX and not os.path.exists('/proc/diskstats'): pass else: if not APPVEYOR: check(psutil.disk_io_counters()) check(psutil.disk_partitions()) check(psutil.disk_usage(os.getcwd())) check(psutil.users())
def test_nic_names(self): p = subprocess.Popen("ifconfig -a", shell=1, stdout=subprocess.PIPE) output = p.communicate()[0].strip() if p.returncode != 0: raise unittest.SkipTest('ifconfig returned no output') if PY3: output = str(output, sys.stdout.encoding) for nic in psutil.net_io_counters(pernic=True).keys(): for line in output.split(): if line.startswith(nic): break else: self.fail( "couldn't find %s nic in 'ifconfig -a' output\n%s" % ( nic, output)) # can't find users on APPVEYOR or TRAVIS
def getUser(): if linux: proc_obj = subprocess.Popen(r'tty', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) tty = proc_obj.communicate()[0] else: tty = [] user_object = psutil.users() for login in user_object: try: username, login_tty, login_host, login_time = [suser for suser in login] except ValueError: # different version # suser(name='Guodong', terminal=None, host='0.0.0.0', started=1511519014.0, pid=None) username, login_tty, login_host, login_time, pid = [suser for suser in login] print username, login_tty, login_host, time.strftime('%b %d %H:%M:%S', time.localtime(login_time)), if login_tty in tty: print '**current user**' else: print
def test_users(self): self.execute(psutil.users)
def test_procinfo(self): self.assert_stdout('procinfo.py', args=str(os.getpid())) # can't find users on APPVEYOR
def test_users(self): users = psutil.users() if not APPVEYOR: self.assertNotEqual(users, []) for user in users: assert user.name, user user.terminal user.host assert user.started > 0.0, user datetime.datetime.fromtimestamp(user.started)
def user_name(): arr = [] for user in psutil.users(): if str(user[0]) is not 'None' and user[0] not in arr: arr.append(user[0]) return arr
def user_details(): return psutil.users()
def test_sensors_temperatures(self): self.execute(psutil.users)
def test_procinfo(self): self.assert_stdout('procinfo.py', args=str(os.getpid())) # can't find users on APPVEYOR or TRAVIS
def test_users(self): users = psutil.users() self.assertNotEqual(users, []) for user in users: assert user.name, user self.assertIsInstance(user.name, (str, unicode)) self.assertIsInstance(user.terminal, (str, unicode, None)) self.assertIsInstance(user.host, (str, unicode, None)) user.terminal user.host assert user.started > 0.0, user datetime.datetime.fromtimestamp(user.started)
def test_users(self): out = sh("who") lines = out.split('\n') users = [x.split()[0] for x in lines] self.assertEqual(len(users), len(psutil.users())) terminals = [x.split()[1] for x in lines] for u in psutil.users(): self.assertTrue(u.name in users, u.name) self.assertTrue(u.terminal in terminals, u.terminal)
def test_disk_io_counters(self): def check_ntuple(nt): self.assertEqual(nt[0], nt.read_count) self.assertEqual(nt[1], nt.write_count) self.assertEqual(nt[2], nt.read_bytes) self.assertEqual(nt[3], nt.write_bytes) if not (OPENBSD or NETBSD): self.assertEqual(nt[4], nt.read_time) self.assertEqual(nt[5], nt.write_time) if LINUX: self.assertEqual(nt[6], nt.read_merged_count) self.assertEqual(nt[7], nt.write_merged_count) self.assertEqual(nt[8], nt.busy_time) elif FREEBSD: self.assertEqual(nt[6], nt.busy_time) for name in nt._fields: assert getattr(nt, name) >= 0, nt ret = psutil.disk_io_counters(perdisk=False) check_ntuple(ret) ret = psutil.disk_io_counters(perdisk=True) # make sure there are no duplicates self.assertEqual(len(ret), len(set(ret))) for key in ret: assert key, key check_ntuple(ret[key]) if LINUX and key[-1].isdigit(): # if 'sda1' is listed 'sda' shouldn't, see: # https://github.com/giampaolo/psutil/issues/338 while key[-1].isdigit(): key = key[:-1] self.assertNotIn(key, ret.keys()) # can't find users on APPVEYOR or TRAVIS
def getUptime2(): boot_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(psutil.boot_time())) print "system start at: %s" % boot_time, uptime_total_seconds = time.time() - psutil.boot_time() uptime_days = int(uptime_total_seconds / 24 / 60 / 60) uptime_hours = int(uptime_total_seconds / 60 / 60 % 24) uptime_minutes = int(uptime_total_seconds / 60 % 60) uptime_seconds = int(uptime_total_seconds % 60) print "uptime: %d days %d hours %d minutes %d seconds" % (uptime_days, uptime_hours, uptime_minutes, uptime_seconds) user_number = len(psutil.users()) print "%d user:" % user_number print " \\" for user_tuple in psutil.users(): user_name = user_tuple[0] user_terminal = user_tuple[1] user_host = user_tuple[2] user_login_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(user_tuple[3])) print " |- user online: %s, login from %s with terminal %s at %s" % ( user_name, user_host, user_terminal, user_login_time) cpu_count = psutil.cpu_count() try: with open('/proc/loadavg', 'r') as f: loadavg_c = f.read().split(' ') loadavg = dict() if loadavg_c is not None: loadavg['lavg_1'] = loadavg_c[0] loadavg['lavg_5'] = loadavg_c[1] loadavg['lavg_15'] = loadavg_c[2] loadavg['nr'] = loadavg_c[3] loadavg['last_pid'] = loadavg_c[4] print "load average: %s, %s, %s" % (loadavg['lavg_1'], loadavg['lavg_5'], loadavg['lavg_15']) if float(loadavg['lavg_15']) > cpu_count: print "Note: cpu 15 min load is high!" if float(loadavg['lavg_5']) > cpu_count: print "Note: cpu 5 min load is high!" if float(loadavg['lavg_1']) > cpu_count: print "Note: cpu 1 min load is high!" except IOError: pass
def main(): users = psutil.users() for user in users: print("%-15s %-15s %s (%s)" % ( user.name, user.terminal or '-', datetime.fromtimestamp(user.started).strftime("%Y-%m-%d %H:%M"), user.host))