在Ubuntu 20.04/22.04中,可以通过设置自启动服务来实现让
"npm run dev"在开机后自动运行的功能。
具体步骤如下:
1. 创建一个服务配置文件,命名为
npm-dev.service
并将其保存在
/etc/systemd/system/
目录下
2. 在 npm-dev.service 中添加以下内容:
[Unit]
Description=My Node.js Development Server
After=network.target
[Service]
Type=simple
User=<Your-Username>
WorkingDirectory=<Path-To-Project-Directory>
ExecStart=<Path-To-Node-Binary> <Path-To-Npm-Binary> run dev
Restart=always
[Install]
WantedBy=multi-user.target
其中,你需要将 替换为你的用户名, 替换为包含项目的目录路径, 替换为 Node.js 二进制文件的路径(通常为 /usr/bin/node), 替换为 npm 二进制文件的路径(通常为 /usr/bin/npm)
3. 启用并启动该服务:
sudo systemctl enable npm-dev.service
sudo systemctl start npm-dev.service
现在,“npm run dev”就会在Ubuntu启动后自动运行了。如果你希望停止该服务,可以使用以下命令:
sudo systemctl stop npm-dev.service
真实示例:
(在宝塔安装的node环境下,开机自动运行ChatGPT的客户端服务“pnpm start”命令)
/etc/systemd/system/pnpm-start.service
[Unit]
Description=ChatGPT Development Server Start
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/www/wwwroot/chat.xeylon.com/chatgpt-web/service
ExecStart=/www/server/nodejs/v18.15.0/bin/pnpm start
Restart=always
[Install]
WantedBy=multi-user.target
创建好后执行:
sudo systemctl enable pnpm-start.service
sudo systemctl start pnpm-start.service
sudo systemctl stop pnpm-start.service