You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:05:36