Directus 10中start.js位置查找及服务器重启后自启保活求助
Directus 10 中 start.js 位置说明与自动启动配置
一、start.js 文件位置变化
Directus 10 重构了目录结构,原 Directus 9 里的 node_modules/directus/dist/start.js 已被移除。现在无需依赖这个文件启动服务,官方推荐使用 CLI 命令:
- 直接运行:
npx directus start - 或者在项目根目录的
package.json中配置启动脚本:
{ "scripts": { "start": "directus start" } }
配置后执行 npm start 即可启动 Directus。
若一定要找类似的入口文件,它现在位于 node_modules/directus/dist/cli.js,但官方不建议直接调用该文件,优先使用官方 CLI 命令。
二、实现服务器重启后自动启动/持续运行
1. 使用 PM2 进程管理器
这是最常用的方案,操作步骤如下:
- 全局安装 PM2:
npm install pm2 -g - 在项目根目录创建
ecosystem.config.js配置文件:
module.exports = { apps: [{ name: 'directus', script: 'npx', args: 'directus start', instances: 1, autorestart: true, watch: false, max_memory_restart: '1G', env: { NODE_ENV: 'production' } }] };
- 启动服务:
pm2 start ecosystem.config.js - 设置 PM2 开机自启:执行
pm2 startup,根据终端提示运行生成的命令完成配置 - 保存当前 PM2 进程列表:
pm2 save
2. 使用 systemd 服务(Linux 系统)
针对 Linux 服务器,可直接配置 systemd 服务实现自启:
- 创建服务文件:
sudo nano /etc/systemd/system/directus.service - 写入以下内容(替换
[your-user]为服务器用户名,[your-project-path]为 Directus 项目的根目录路径):
[Unit] Description=Directus CMS Service After=network.target [Service] User=[your-user] WorkingDirectory=[your-project-path] ExecStart=/usr/bin/npm start Restart=always Environment=NODE_ENV=production [Install] WantedBy=multi-user.target
- 重新加载 systemd 配置:
sudo systemctl daemon-reload - 启动 Directus 服务:
sudo systemctl start directus - 设置开机自启:
sudo systemctl enable directus - 查看服务运行状态:
sudo systemctl status directus
内容的提问来源于stack exchange,提问作者Mohsin Mujawar
相关产品推荐
相关产品推荐

