Jupyter AI

Linux服务进程崩溃后自动启动

📅发表日期: 2025-02-08

🏷️分类: AI消息

👁️阅读次数: 0

这个 systemd 服务单元文件用于在 Linux 服务器上管理一个 Node.js 应用程序的后台运行。以下是它的主要功能和作用:

功能解析

  1. 定义服务基本信息

    [Unit]
    Description=My Node.js Application
    After=network.target
    
    • Description:描述这个服务的作用(Node.js 应用)。
    • After=network.target:确保网络服务启动后再启动这个服务。
  2. 设置工作环境

    [Service]
    WorkingDirectory=/root/my-markdown-site
    Environment=PORT=3001
    Environment="PATH=/root/node-v18.18.1-linux-x64-glibc-217/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    
    • WorkingDirectory=/root/my-markdown-site:设置工作目录,服务会在此目录下执行命令。
    • Environment=PORT=3001:定义环境变量,指定应用运行端口。
    • Environment="PATH=...":确保 npmnode 可用,因为它们安装在 /root/node-v18.18.1-linux-x64-glibc-217/bin 目录下,而不是全局可用的路径中。
  3. 启动 Node.js 应用

    ExecStart=/root/node-v18.18.1-linux-x64-glibc-217/bin/npm run start
    
    • ExecStart 运行 npm run start 命令,以启动 Node.js 应用。
    • 使用绝对路径 /root/node-v18.18.1-linux-x64-glibc-217/bin/npm 确保 npm 可被找到。
  4. 自动重启

    Restart=always
    RestartSec=5
    
    • Restart=always:如果进程崩溃,会自动重启。
    • RestartSec=5:如果进程崩溃,等待 5 秒 后再尝试重启。
  5. 设置开机自启

    [Install]
    WantedBy=multi-user.target
    
    • WantedBy=multi-user.target:确保该服务在多用户模式(即正常系统启动)时自动启动。

如何使用

  1. 保存文件

    • 把这个内容保存为 /etc/systemd/system/my-node-app.service
  2. 加载 systemd 配置

    sudo systemctl daemon-reload
    
  3. 启动服务

    sudo systemctl start my-node-app
    
  4. 检查服务状态

    sudo systemctl status my-node-app
    
  5. 设置开机自启

    sudo systemctl enable my-node-app
    
  6. 停止/重启服务

    sudo systemctl stop my-node-app
    sudo systemctl restart my-node-app
    

总结

  • 这个 systemd 配置文件会在 服务器开机时自动启动 Node.js 应用,并确保应用 崩溃后自动重启
  • 适用于 生产环境部署,减少应用因意外错误中断的可能性。

💬 评论

暂无评论

🧠AI 最新技术 (滚动鼠标查看)