设置文字修仙开机自启(ubuntu)

23

在 Ubuntu 系统中,您可以通过编写一个 Shell 脚本并创建一个 systemd 服务来实现自动进入指定目录执行 npm run preview,并设置为开机启动。以下是详细的步骤:

1. 编写 Shell 脚本

首先,创建一个 Shell 脚本,用于导航到目标目录并执行命令。

bash

#!/bin/bash

# 导航到项目目录
cd /data/work/vue-XiuXianGame || exit

# 设置环境变量(如果需要)
# export NODE_ENV=production

# 执行 npm run preview
/usr/bin/npm run preview

步骤说明:

  • 使用文本编辑器创建脚本文件,例如 start_preview.sh

    bash

    sudo nano /usr/local/bin/start_preview.sh
  • 将上述脚本内容粘贴进去。

  • 保存并退出编辑器。

  • 给予脚本执行权限:

    bash

    sudo chmod +x /usr/local/bin/start_preview.sh

2. 创建 systemd 服务文件

接下来,创建一个 systemd 服务文件,以便系统在启动时运行该脚本。

bash

sudo nano /etc/systemd/system/vue-preview.service

在文件中添加以下内容:

ini

[Unit]
Description=Vue XiuXianGame Preview Service
After=network.target

[Service]
Type=simple
User=your_username
WorkingDirectory=/data/work/vue-XiuXianGame
ExecStart=/usr/bin/npm run preview
Restart=on-failure
Environment=PATH=/usr/bin:/usr/local/bin
# 如果需要,可以在这里设置更多环境变量
# Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

注意:

  • your_username 替换为运行该服务的实际用户名。

  • 确保 ExecStart 中的路径 /usr/bin/npm 是正确的,可以通过运行 which npm 来确认。

3. 重新加载 systemd 配置并启动服务

执行以下命令以使 systemd 识别新的服务文件,并启动服务:

bash

# 重新加载 systemd 守护进程
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start vue-preview.service

# 检查服务状态
sudo systemctl status vue-preview.service

4. 设置服务开机自启动

为了让服务在系统启动时自动运行,启用该服务:

bash

sudo systemctl enable vue-preview.service

5. (可选)日志管理

如果您希望将服务的输出日志保存到文件中,可以在服务文件中添加 StandardOutputStandardError 指令。例如:

ini

[Service]
# 其他配置...
StandardOutput=append:/var/log/vue-preview.log
StandardError=append:/var/log/vue-preview.err

然后,重新加载 systemd 并重启服务:

bash

sudo systemctl daemon-reload
sudo systemctl restart vue-preview.service

总结

通过上述步骤,您已经成功编写了一个脚本来进入指定目录并执行 npm run preview,并将其设置为开机自启动。这样,每次系统启动时,您的 Vue 项目预览服务都会自动运行。

如果在过程中遇到任何问题,可以通过查看服务状态和日志来排查:

bash

# 查看服务状态
sudo systemctl status vue-preview.service

# 查看日志
journalctl -u vue-preview.service