Ubuntu 16.04网吧环境定时自动注销及远程调时长实现方法咨询
嘿,针对你在网吧Ubuntu 16.04环境下的定时自动注销+远程调整时长需求,我给你整理了一套实操性很强的方案,分两部分来实现:
一、基础定时自动注销功能
这个部分我们用bash脚本结合系统会话管理工具来实现,精准注销当前用户会话(不会影响网吧其他用户):
1. 编写定时注销脚本
创建一个名为auto_logout.sh的脚本,内容如下:
#!/bin/bash # 默认时长30分钟,可通过参数自定义 TIMEOUT=${1:-30} # 计算秒数 TIMEOUT_SEC=$((TIMEOUT * 60)) echo "会话将在${TIMEOUT}分钟后自动注销..." sleep $TIMEOUT_SEC # 注销当前会话(Ubuntu 16.04用systemd,loginctl更安全) loginctl terminate-session $XDG_SESSION_ID
给脚本添加执行权限:
chmod +x ~/auto_logout.sh
2. 设置登录后自动运行脚本
因为是网吧环境,用户登录后需要自动启动这个脚本,你可以通过Unity桌面的启动项来配置:
- 打开「系统设置」→「用户账户」→ 点击「登录项」
- 点击「+」号,选择刚才创建的
auto_logout.sh脚本,添加完成后重启测试,登录后会自动开始计时。
二、同一WiFi下远程调整注销时长
这个部分我们用后台监听脚本配合netcat实现,同一局域网内的设备可以发送新的时长来调整:
1. 编写时长调整监听脚本
创建adjust_timeout.sh脚本,内容如下:
#!/bin/bash # 监听本地端口(比如1234,可自定义) LISTEN_PORT=1234 while true; do # 等待接收新的时长(数字) NEW_TIMEOUT=$(nc -l $LISTEN_PORT) if [[ "$NEW_TIMEOUT" =~ ^[0-9]+$ ]]; then echo "收到新的注销时长:${NEW_TIMEOUT}分钟" # 杀死之前的定时注销进程 pkill -f "sleep.*auto_logout.sh" # 重新启动定时注销脚本,传入新时长 ~/auto_logout.sh $NEW_TIMEOUT & else echo "无效的时长参数,请输入数字" fi done
同样给脚本加执行权限:
chmod +x ~/adjust_timeout.sh
2. 设置监听脚本随登录启动
同样把这个脚本添加到「登录项」里,确保用户登录后后台自动运行,等待远程指令。
3. 远程调整操作
在同一WiFi下的另一台设备(比如笔记本、手机终端),先获取Ubuntu机器的局域网IP(在Ubuntu上运行ifconfig查看,比如192.168.1.100),然后执行:
echo "45" | nc 192.168.1.100 1234
上面的命令就是把注销时长调整为45分钟,替换数字即可。
注意事项
- 确保Ubuntu机器的防火墙允许监听的端口(比如1234),可以临时关闭测试:
sudo ufw allow 1234 - 网吧环境如果有用户权限限制,确保脚本放在用户可读写的目录(比如
~/) - 测试时可以把时长设为1分钟,快速验证功能是否正常
内容的提问来源于stack exchange,提问作者user227495
相关产品推荐
相关产品推荐

