jev模型服务开机自启需按系统与运行形态匹配机制:windows用任务计划程序配置system权限启动,linux用systemd声明network与数据库依赖并启用服务。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让JEV模型服务在Windows或Linux系统开机时自动启动,需根据其运行形态(GUI程序、命令行脚本、Java应用或后台服务)匹配对应机制——直接往启动文件夹拖快捷方式可能无效,注册表Run键无法等待网络就绪,而systemd服务若未声明依赖则会因数据库未启动而崩溃。
Windows下JEV模型服务开机自启
JEV模型若以Java JAR包形式运行(如jev-engine.jar),不能靠启动文件夹实现真正意义上的“开机即启”,因为用户未登录时GUI环境未加载,且JAR依赖网络与数据库连接。必须使用任务计划程序强制脱离用户会话运行。
第一步:以管理员身份打开任务计划程序→左侧点击“任务计划程序库”→右侧点击“创建基本任务”。
第二步:输入名称“JEV-Model-AutoStart”,描述可填“开机自动拉起JEV推理服务”,点击下一步。
第三步:触发器选“当计算机启动时”,不勾选“延迟任务时间”,点击下一步。
第四步:操作选“启动程序”,程序/脚本栏填入java(确保已配置系统PATH),添加参数栏填入-Xms512m -Xmx2g -jar "C:\jev\jev-engine.jar",起始于栏必须填C:\jev\(【否则java将找不到配置文件和模型权重路径】),点击下一步→完成。
第五步:双击刚建的任务→切换到“常规”选项卡→勾选“不管用户是否登录都要运行”和“使用最高权限运行”→点击“更改用户或组”→输入SYSTEM→检查名称→确定。这一步不可跳过,否则服务会在登录前静默失败。
Linux下通过systemd设置JEV模型开机自启
适用于CentOS 8+/Ubuntu 20.04+等采用systemd的发行版。JEV若为Java服务,必须显式声明对网络与数据库的依赖,否则启动顺序错乱会导致连接超时退出。
方法一:创建标准.service单元文件
执行sudo nano /etc/systemd/system/jev-model.service,填入以下内容:
[Unit]
Description=JEV Inference Engine
After=network.target mariadb.service
Wants=network.target mariadb.service
[Service]
Type=simple
User=jevuser
Group=jevuser
WorkingDirectory=/opt/jev/
ExecStart=/usr/bin/java -Xms1g -Xmx4g -Dspring.profiles.active=prod -jar /opt/jev/jev-engine.jar
Restart=on-failure
RestartSec=5
TimeoutSec=120
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
[Install]
WantedBy=multi-user.target
保存后执行sudo systemctl daemon-reload→sudo systemctl enable jev-model.service→sudo systemctl start jev-model.service。
方法二:用rc.local兜底(仅限调试或老旧系统)
编辑/etc/rc.local,在exit 0前插入:su - jevuser -c 'cd /opt/jev && nohup java -Xms1g -Xmx4g -jar jev-engine.jar > /var/log/jev-startup.log 2>&1 &' 。注意必须加nohup和&,否则rc.local阻塞会导致系统卡在启动末尾。
验证JEV服务是否真正开机自启
Windows:重启电脑,不登录任何账户→等待2分钟后,用另一台机器telnet目标IP的JEV服务端口(如8080),能通即表示SYSTEM上下文已成功拉起服务。
Linux:重启后立即执行sudo systemctl status jev-model.service,观察Active状态是否为active (running),且Logs中无Connection refused或Unable to connect to database报错;若出现后者,说明[Unit]段的After=依赖项未生效,需检查mariadb.service实际名称(可用systemctl list-unit-files | grep sql确认)。











