用于退出的命令是什么?(即终止Node.js进程)
如何在Node.js中退出
打开运行节点应用程序的命令行终端,然后按Ctrl + C
如果您想从代码中退出节点js应用程序,
process.exit(); // graceful termination
process.exit(1); // non graceful termination
如果您想退出节点js应用程序,请编写
process.exit(1)
在你的代码中
如果您使用的是Windows,请转至“任务管理器”,然后转至“进程”,查找一个名为“节点”的进程,然后用鼠标右键单击该进程,然后单击“结束进程”选项。
您可以使用process.exit([code])函数。
如果要退出而不会出现“失败”,请使用代码0
:
process.exit(0);
要退出并显示“失败”代码,1
您可以运行:
process.exit(1);
失败的“失败”代码特定于应用程序。因此,您可以使用自己的约定。
退出
let exitCode = 1;
process.exit(exitCode)
有用的退出代码
1-通用错误的Catchall 2-滥用shell内置函数(根据Bash文档) 126-调用的命令无法执行 127-“找不到命令” 128-无效的参数退出 128 + n-致命错误信号“ n” 130-脚本被Control-C终止 255 \ *-退出状态超出范围
由于流程是全局对象,因此不需要导入任何模块。以下函数退出或终止当前节点进程。
process.exit(代码)
process.kill(process.pid)
process.abort()
按Ctrl + C
两次或.exit
。
>
(To exit, press ^C again or type .exit)
>
通过键入,我能够使我的所有节点进程直接从Windows 10的Git Bash shell中消失taskkill -F -IM node.exe
-这一次结束了我计算机上的所有节点进程。我发现我也可以使用taskkill //F //IM node.exe
。不知道为什么都-
和//
工作在这方面。希望这可以帮助!
从代码中,您可以使用process.exit([errorcode])
where [errorcode]
是可选的整数(0
默认值表示成功)。
如果使用的是“ 读取评估打印循环”(REPL),则可以使用Ctrl+ D或键入.exit
另外,在Windows或Linux上,您可以使用Ctrl+ C,Ctrl+C
在Mac上,命令为Ctrl+ Z,Ctrl+Z
正如@Dominic指出的那样,抛出未捕获的错误是更好的做法,而不是调用process.exit([code]):
process.exitCode = 1;
throw new Error("my module xx condition failed");
REPL(命令行)
按
ctrl + c
两次键入
.exit
,然后按Enter
脚本文件
process.exit(code)
当没有其他异步操作挂起时,节点通常以代码0退出。
process.exit(1)
应该使用失败代码退出。这将允许我们推断该节点未正常关闭,而被迫关闭。
还有其他退出代码,例如
3-内部JavaScript解析错误(非常罕见)
5-v8 JavaScript引擎中的致命错误
9-无效的参数
有关完整列表,请参见节点退出代码
如果您在Unix终端或Windows命令行中并想要退出Node REPL,请选择...
- 按Ctrl+ C两次,或
- 输入
.exit
并按Enter,或 - 在行首按Ctrl+ D(仅限Unix)
在命令行中,.exit
您需要的是:
$ node
> .exit
$
它记录在REPL docs中。REPL(Read-Eval-Print-Loop)是所谓的Node命令行。
在普通程序中,使用process.exit([code])
。
刚一说明,使用process.exit([number])
是不推荐的做法。
调用process.exit()将强制进程尽快退出,即使仍有尚未完成的异步操作(包括对process.stdout和process.stderr的I / O操作)也未完成。
在大多数情况下,实际上没有必要显式调用process.exit()。如果事件循环中没有其他待处理的工作,则Node.js进程将自行退出。可以设置process.exitCode属性,以告知进程正常退出时要使用哪个退出代码。
例如,以下示例说明了process.exit()方法的滥用,这可能导致打印到stdout的数据被截断并丢失:
// This is an example of what *not* to do: if (someConditionNotMet()) { printUsageToStdout(); process.exit(1); }
之所以有问题,是因为有时Node.js中对process.stdout的写入是异步的,并且可能在Node.js事件循环的多个滴答中发生。但是,调用process.exit()会强制该进程退出,然后再执行对stdout的其他写入操作。
该代码应直接设置process.exitCode,而不是直接调用process.exit(),并通过避免为事件循环安排任何其他工作来允许进程自然退出:
// How to properly set the exit code while letting // the process exit gracefully. if (someConditionNotMet()) { printUsageToStdout(); process.exitCode = 1; }
节点js的退出有两种方式:
怎么运行的?
如果要强制执行循环停止该过程,则可以使用EventEmitter实例的全局变量process。因此,当您调用process.exit()时,您实际上会发出退出事件,该事件立即结束所有任务,即使仍有异步操作尚未完成。
process.exit()将退出代码(整数)作为参数。代码0是默认值,这意味着它以“成功”退出。虽然代码1表示它以“失败”退出。