编写一个用户监测程序usr_monitor, 其运行格式为: usr_monitor username 其中username是用户指定的任意一个用户名。程序运行时首先列出当前系统中的已登录用户的名单,再检查指定用户是否已登录。如果已登录,则显示相应信息;如果未登录,则等待该用户登录,直到指定用户登录进入系统为止。
时间: 2024-02-24 19:57:57 浏览: 17
以下是一个简单的Python实现,可以实现你所需的功能:
```python
import os
import sys
# 获取已登录用户列表
def get_logged_users():
users = []
with os.popen('who') as f:
for line in f.readlines():
users.append(line.split()[0])
return users
# 检查指定用户是否已登录
def check_user(username):
logged_users = get_logged_users()
if username in logged_users:
print(f"{username} is logged in.")
return True
else:
return False
# 等待指定用户登录
def wait_for_user(username):
while True:
if check_user(username):
break
# 主程序
if __name__ == '__main__':
if len(sys.argv) < 2:
print("Usage: usr_monitor username")
sys.exit(1)
username = sys.argv[1]
if check_user(username):
sys.exit(0)
else:
wait_for_user(username)
sys.exit(0)
```
你可以将以上代码保存为usr_monitor.py,然后在命令行中运行:
```
$ python usr_monitor.py username
```
其中username是你要监测的用户名。程序会先列出当前系统中已登录的用户,然后检查指定用户是否已登录。如果已登录,则显示相应信息;如果未登录,则等待该用户登录,直到指定用户登录进入系统为止。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)