教师机与学生机的自动区分(安装前必读)
cc-class 最大的特点是:同一个安装包,装到所有机器上。装完之后,每台机器是"教师机"还是"学生机",软件自己判断、自己处理,管理员不需要在每台机器上做不同操作。
判断依据只有一个——计算机名(主机名)。
一、判定规则:什么样的计算机名算"教师机"
只要计算机名满足下面任意一条(不区分大小写),就被判定为教师机;否则就是学生机。
- 含教师关键字:名字里包含
teacher、jiaoshi、laoshi、或中文老师。- 例:
teacher-01、JiaoShi、机房1-老师机
- 例:
- 含
-t/_t教师标记段:用短横线或下划线把一个独立的t标出来——即t的前面是-、_或开头,后面是-、_、数字或结尾。- 命中:
pc-t、lab-t-01、room1-t2、PC001-T - 不会误判:
-test(t 后面是 e)、team(t 前面是开头但后面是 e)、host-time(t 后面是 i)
- 命中:
给技术人员:精确规则
教师标记段使用正则 (^|[-_])t([-_]|[0-9]|$) 匹配(小写化之后)。Windows 安装包 (installer.nsi) 与 Linux 守护进程 (StudentService) 内置了完全一致的判定逻辑,确保三端(教师端/学生端/安装器)判断结果相同。
推荐的命名方案
| 角色 | 推荐计算机名示例 | 说明 |
|---|---|---|
| 教师机 | teacher、teacher-01、PC-T、PC001-T | 含关键字或 -t 标记 |
| 学生机 | PC001、PC002、stu-01、room1-15 | 普通名字,不要带教师标记 |
最省事的做法
教师机命名为 PC001-T(结尾 -T),学生机依次命名为 PC002、PC003…… 本手册的演示环境就是这样:教师机 PC001-T,学生机 PC002、PC003。
二、云桌面计算机名优先级(重要)
很多机房使用**云桌面 / 无盘(IDV/VOI)**方案,多台机器从同一镜像启动,操作系统里的主机名可能完全相同。为此 cc-class 这样取名:
- 优先读取云桌面下发的"云桌面计算机名"
- Linux:从设备
/dev/vdchardev读取; - Windows:从设备
\\.\vddsk读取。
- Linux:从设备
- 只有当读不到/没有该设备/为空时,才回退使用操作系统主机名。
也就是说:云桌面计算机名 > 操作系统主机名。在云桌面环境里,请在云桌面管理平台上把这台机器的"计算机名"设为带教师标记(如 PC001-T),而不仅仅改操作系统主机名。
常见坑
如果操作系统主机名是 PC001-T(看着像教师机),但云桌面下发的名字是 PC001(学生),那么 cc-class 会以云桌面名 PC001 为准,把它当学生机,教师端将拒绝启动。排查时请以"云桌面计算机名"为准。
三、判定结果会带来什么(自动行为)
| 这台机器被判为… | 教师端 TeacherApp | 学生端 StudentApp | 桌面快捷方式 |
|---|---|---|---|
| 教师机 | 正常启动 | 自动退出(教师机上不跑学生端) | 只生成教师端图标 |
| 学生机 | 弹窗提示"非教师机,不会启动" | 正常运行、自动连接教师机 | 不生成任何桌面图标(保持桌面整洁) |
- 学生端在教师机上会"悄悄退出"(返回 0,不打扰老师)。
- 教师端在学生机上会弹出提示并退出。应急时可加命令行参数
--no-host-check跳过该检查(见 FAQ)。
四、桌面快捷方式:自动处理,无需手动
您不需要手动建图标,cc-class 会按角色自动处理,并清理"装错角色"留下的残留图标:
- 教师机:在桌面生成 cc-class 教师端 图标;
- Linux 下由学生守护进程
StudentService在每次开机时按"云桌面计算机名"权威重建,并自动设置 GNOME 的metadata::trusted,避免出现"未信任的应用程序启动器"导致双击无效。 - Windows 下由安装程序按计算机名生成
…-Teacher.lnk。
- Linux 下由学生守护进程
- 学生机:不在桌面放任何图标(应用菜单里仍有入口,便于排查)。
下面是演示环境的实际效果(命令行查看桌面目录):
# 教师机 PC001-T 的桌面:有教师端图标
~/桌面/cc-class-teacher.desktop
# 学生机 PC002 / PC003 的桌面:空(无任何 cc-class 图标)
(无)改了计算机名怎么办?
改名后重启机器即可。开机时守护进程会用新名字重新判定角色、重建/清理桌面图标——全自动。
五、判定流程图
┌─────────────────────────────┐
│ 读取"云桌面计算机名" │
│ Linux: /dev/vdchardev │
│ Windows: \\.\vddsk │
└──────────────┬──────────────┘
读到且非空 │ 否则回退
┌──────────────▼──────────────┐
│ 使用操作系统主机名 │
└──────────────┬──────────────┘
│
名字含 teacher / jiaoshi / laoshi / 老师
或含 -t / _t 教师标记段?
┌───────┴───────┐
是│ │否
┌──────▼──────┐ ┌──────▼──────┐
│ 教师机 │ │ 学生机 │
│ 跑教师端 │ │ 跑学生端 │
│ 建教师图标 │ │ 不建桌面图标│
└─────────────┘ └─────────────┘下一步:选择您的平台进行安装 👉 Windows 安装 | Linux 安装