Skip to main content
systemd 是 Linux 的初始化系统和服务管理器。它负责管理系统进程和服务的启动与控制。
要使用 systemd 将 Bun 应用作为守护进程运行,请在 /etc/systemd/system/ 中创建一个_服务文件_。
terminal

以下是一个在系统启动时运行应用的典型服务文件。请将其作为自己服务的模板。将 YOUR_USER 替换为运行应用的用户名称。要以 root 身份运行,请将 YOUR_USER 替换为 root,并将 /home/YOUR_USER 替换为 /root(root 的主目录),但出于安全原因,不建议这样做。 有关每个设置的详细信息,请参阅 systemd 文档
my-app.service

如果你的应用启动了一个 Web 服务器,非 root 用户默认无法监听 80 或 443 端口。要允许 Bun 在以非 root 用户运行时监听这些端口,请使用以下命令(这需要 sudo 权限)。以 root 身份运行时不需要此步骤。
terminal
该权限附加在 bun 二进制文件本身上,并且会在二进制文件被替换时丢失,例如执行 bun upgrade 后,因此升级后需要重新运行该命令。或者,也可以将 AmbientCapabilities=CAP_NET_BIND_SERVICE 添加到服务文件的 [Service] 部分。
配置好服务文件后,_启用_该服务。启用后,它会在系统重启时自动启动。此操作需要 sudo 权限。
terminal

要在不重启的情况下启动服务,请手动_启动_它。
terminal

使用 systemctl status 查看应用的状态。如果应用启动成功,输出如下所示:
terminal

要更新服务,请编辑服务文件,然后重新加载守护进程。
terminal

有关服务单元配置的完整指南,请参阅 systemd.service 文档。或者使用以下常用命令速查表:
terminal