Skip to content

教师机与学生机的自动区分(安装前必读)

cc-class 最大的特点是:同一个安装包,装到所有机器上。装完之后,每台机器是"教师机"还是"学生机",软件自己判断、自己处理,管理员不需要在每台机器上做不同操作。

判断依据只有一个——计算机名(主机名)

一、判定规则:什么样的计算机名算"教师机"

只要计算机名满足下面任意一条(不区分大小写),就被判定为教师机;否则就是学生机

  1. 含教师关键字:名字里包含 teacherjiaoshilaoshi、或中文老师
    • 例:teacher-01JiaoShi机房1-老师机
  2. -t / _t 教师标记段:用短横线或下划线把一个独立的 t 标出来——即 t前面-_ 或开头,后面-_、数字或结尾。
    • 命中:pc-tlab-t-01room1-t2PC001-T
    • 不会误判:-test(t 后面是 e)、team(t 前面是开头但后面是 e)、host-time(t 后面是 i)
给技术人员:精确规则

教师标记段使用正则 (^|[-_])t([-_]|[0-9]|$) 匹配(小写化之后)。Windows 安装包 (installer.nsi) 与 Linux 守护进程 (StudentService) 内置了完全一致的判定逻辑,确保三端(教师端/学生端/安装器)判断结果相同。

推荐的命名方案

角色推荐计算机名示例说明
教师机teacherteacher-01PC-TPC001-T含关键字或 -t 标记
学生机PC001PC002stu-01room1-15普通名字,不要带教师标记

最省事的做法

教师机命名为 PC001-T(结尾 -T),学生机依次命名为 PC002PC003…… 本手册的演示环境就是这样:教师机 PC001-T,学生机 PC002PC003

二、云桌面计算机名优先级(重要)

很多机房使用**云桌面 / 无盘(IDV/VOI)**方案,多台机器从同一镜像启动,操作系统里的主机名可能完全相同。为此 cc-class 这样取名:

  1. 优先读取云桌面下发的"云桌面计算机名"
    • Linux:从设备 /dev/vdchardev 读取;
    • Windows:从设备 \\.\vddsk 读取。
  2. 只有当读不到/没有该设备/为空时,才回退使用操作系统主机名

也就是说:云桌面计算机名 > 操作系统主机名。在云桌面环境里,请在云桌面管理平台上把这台机器的"计算机名"设为带教师标记(如 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
  • 学生机不在桌面放任何图标(应用菜单里仍有入口,便于排查)。

下面是演示环境的实际效果(命令行查看桌面目录):

text
# 教师机 PC001-T 的桌面:有教师端图标
~/桌面/cc-class-teacher.desktop

# 学生机 PC002 / PC003 的桌面:空(无任何 cc-class 图标)
(无)

改了计算机名怎么办?

改名后重启机器即可。开机时守护进程会用新名字重新判定角色、重建/清理桌面图标——全自动。

五、判定流程图

                ┌─────────────────────────────┐
                │  读取"云桌面计算机名"        │
                │  Linux: /dev/vdchardev       │
                │  Windows: \\.\vddsk          │
                └──────────────┬──────────────┘
                  读到且非空 │ 否则回退
                ┌──────────────▼──────────────┐
                │     使用操作系统主机名       │
                └──────────────┬──────────────┘

              名字含 teacher / jiaoshi / laoshi / 老师
              或含 -t / _t 教师标记段?
                       ┌───────┴───────┐
                     是│               │否
                ┌──────▼──────┐ ┌──────▼──────┐
                │   教师机    │ │   学生机    │
                │ 跑教师端    │ │ 跑学生端    │
                │ 建教师图标  │ │ 不建桌面图标│
                └─────────────┘ └─────────────┘

下一步:选择您的平台进行安装 👉 Windows 安装Linux 安装