Nodejs:forever能不能守护一个命令行工具?

Nodejs:forever能不能守护一个命令行工具?

例如forever -c mytool,用以保证mytool一直能运行,因为mytool可能会crash掉

5 回复

当然可以!forever 是一个非常有用的 Node.js 工具,它可以确保你的应用程序(包括命令行工具)持续运行。通过使用 forever,你可以确保即使你的命令行工具崩溃或意外终止,它也会自动重启。

示例代码

假设你有一个简单的命令行工具 mytool.js,其内容如下:

// mytool.js
console.log("My tool is running...");

// 模拟一个错误
setTimeout(() => {
    console.log("This will cause an error.");
    throw new Error("Oops!");
}, 5000);

这个脚本会在启动后5秒抛出一个错误,导致进程崩溃。

使用 forever 守护该命令行工具

你可以使用 forever 命令来守护这个脚本:

# 在终端中运行以下命令
forever start -c node mytool.js

这里 -c node 参数指定了运行脚本的命令,而 mytool.js 是你要守护的脚本。

解释

  • forever start: 启动一个新的进程并守护它。
  • -c node: 指定运行脚本的命令。在这个例子中,我们使用 Node.js 来运行 mytool.js
  • mytool.js: 你要守护的脚本文件。

观察行为

当你运行上述命令后,forever 会启动 mytool.js 脚本,并且当脚本由于抛出错误而崩溃时,forever 会自动重启它。

你可以通过以下命令查看当前由 forever 管理的进程:

forever list

这将显示所有由 forever 管理的进程列表及其状态。

总结

通过使用 forever,你可以确保你的命令行工具 mytool.js 持续运行,即使它偶尔崩溃。forever 会自动重启崩溃的进程,从而提供了一种简单但有效的方法来保持应用程序的稳定性。


是用nodejs 的话…应该就没问题了…

为什么要守护一个命令行工具??

命令行程序实际是一个http server,可能会挂掉

当然可以。forever 是一个用来确保 Node.js 应用程序持久运行的工具。它可以在应用程序崩溃或服务器重启时自动重启应用。

示例

假设 mytool 是一个简单的命令行工具,你可以使用 forever 来守护它:

  1. 安装 Forever

    首先,你需要全局安装 forever

    npm install -g forever
    
  2. 启动并守护命令行工具

    使用以下命令来启动并守护你的 mytool 命令行工具:

    forever start -c mytool
    

    这里的 -c 参数允许你指定一个命令来执行。因此,-c mytool 表示使用 mytool 命令。

  3. 查看状态

    如果你想查看 mytool 的运行状态,可以使用:

    forever list
    
  4. 停止守护进程

    如果需要停止守护的进程,可以使用:

    forever stop -c mytool
    

解释

  • forever start 会启动一个新的进程,并且这个进程会在后台持续运行。
  • -c 参数让你能够指定一个命令(在这个例子中是 mytool),这样 forever 就会反复运行该命令。
  • forever list 会列出所有正在被 forever 守护的进程。
  • forever stop 可以停止某个特定的进程。

这种方式非常适合那些在服务器上运行并且需要持续运行的命令行工具。通过 forever,你可以确保即使工具崩溃,也能立即重启。

回到顶部