Maison  >  Article  >  interface Web  >  Comment terminer un processus dans nodejs

Comment terminer un processus dans nodejs

PHPz
PHPzoriginal
2023-04-05 14:34:571816parcourir

Node.js est un environnement d'exécution JavaScript basé sur le moteur V8 et est actuellement l'une des technologies les plus couramment utilisées pour le développement front-end. Dans Node.js, le processus est un concept très important et chaque application Node.js démarre un processus à exécuter. Dans certains cas, nous devons mettre fin manuellement au processus en cours. Cet article vous expliquera comment mettre fin au processus Node.js.

Signaux d'abandon de programme

Dans Node.js, un processus peut recevoir plusieurs signaux, qui peuvent être utilisés pour contrôler le comportement du processus, y compris l'abandon du processus. Certains signaux courants incluent :

  • SIGINT : déclenché par la saisie de l'utilisateur Ctrl + C, généralement utilisé pour terminer le processus.
  • Ctrl + C,通常用来终止进程。
  • SIGTERM: 通常由操作系统发送,表示进程需要正常终止。
  • SIGHUP: 通常表示终端连接中断。
  • SIGBREAK: 触发于 Windows 系统下,用户输入 Ctrl + Break

当进程接收到这些信号中的任意一个,Node.js 会触发 process 对象的 exit() 事件,这个事件可以让我们在进程结束之前执行一些清理操作。

通过代码结束

我们可以直接在代码中调用 process.exit() 方法结束进程。process.exit() 方法支持传入一个整数参数,这个参数被称为退出码。当进程正常结束时,退出码为 0,否则为非 0 值。像这样:

const code = 1;
process.exit(code);

在这种情况下,进程将会以退出码 1 的方式结束,可以在终端中通过 echo $?(Mac/Linux) 或 echo %errorlevel%(Windows)查看退出码。

另外,在结束进程前,可以监听 exit() 事件执行一些清理操作:

process.on('exit', code => {
  // 执行一些清理操作
  console.log(`进程退出,退出码:${code}`);
});

使用 kill 命令

除了代码外,我们还可以使用操作系统的 kill 命令结束进程。kill 命令通常用于向进程发送信号,从而控制进程行为,例如:

# 给进程 ID 为 1234 的进程,发送 SIGTERM 信号结束进程
kill -SIGTERM 1234

如果不传递参数,则 kill 命令默认发送 SIGTERM 信号,这将导致进程正常结束。例如:

# 结束进程 ID 为 1234 的进程
kill 1234

使用 pm2 管理进程

pm2 是一个非常强大的进程管理工具,可以在生产环境广泛应用。pm2 可以通过命令行来启动、重启和停止应用程序,并监视应用程序运行状态。使用 pm2 管理进程非常简单,只需要在应用程序目录下运行以下命令:

# 启动应用程序
pm2 start app.js

# 重启应用程序
pm2 restart app.js

# 停止应用程序
pm2 stop app.js

另外,pm2 还负责监控应用程序的运行状态和日志输出,非常适合使用在生产环境中。

总之,结束 Node.js 进程有多种方法可供选择,其中最常用的方式是通过代码调用 process.exit() 方法或者使用 pm2SIGTERM : généralement envoyé par le système d'exploitation pour indiquer que le processus doit se terminer normalement.

SIGHUP : Indique généralement que la connexion du terminal est interrompue. 🎜SIGBREAK : Déclenché par la saisie de l'utilisateur Ctrl + Break sous le système Windows. 🎜Lorsque le processus reçoit l'un de ces signaux, Node.js déclenchera l'événement exit() de l'objet process. Effectuons un nettoyage avant la fin du processus. 🎜🎜Fin via le code🎜🎜Nous pouvons appeler directement la méthode process.exit() dans le code pour terminer le processus. La méthode process.exit() prend en charge la transmission d'un paramètre entier, appelé code de sortie. Le code de sortie est 0 lorsque le processus se termine normalement, sinon il s'agit d'une valeur non nulle. Comme ceci : 🎜rrreee🎜Dans ce cas, le processus se terminera par le code de sortie 1, qui peut être fait dans le terminal via echo $? (Mac/Linux) ou echo %errorlevel % (Windows) Afficher le code de sortie. 🎜🎜De plus, avant de terminer le processus, vous pouvez écouter l'événement exit() pour effectuer quelques opérations de nettoyage : 🎜rrreee🎜Utilisez la commande kill🎜🎜De plus pour coder, nous pouvons également utiliser la commande kill du système d'exploitation qui termine le processus. La commande kill est généralement utilisée pour envoyer des signaux au processus afin de contrôler le comportement du processus, par exemple : 🎜rrreee🎜Si aucun paramètre n'est passé, la commande kill envoie le SIGTERM signal par défaut, ce qui entraînera la fin du processus normalement. Par exemple : 🎜rrreee🎜Utilisez pm2 pour gérer les processus🎜🎜pm2 est un outil de gestion de processus très puissant qui peut être largement utilisé dans les environnements de production. pm2 peut démarrer, redémarrer et arrêter des applications via la ligne de commande et surveiller l'état d'exécution des applications. Il est très simple d'utiliser pm2 pour gérer les processus. Il vous suffit d'exécuter la commande suivante dans le répertoire de l'application : 🎜rrreee🎜De plus, pm2 est également responsable de la surveillance. l'état d'exécution et la sortie du journal de l'application. Très approprié pour une utilisation dans des environnements de production. 🎜🎜En bref, il existe de nombreuses façons de terminer le processus Node.js, la manière la plus courante est d'appeler la méthode process.exit() via du code ou d'utiliser pm2 processus de gestion. Quoi qu'il en soit, nous devons nous assurer que le processus se termine normalement pour éviter une charge inutile du système causée par le processus exécuté en arrière-plan. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn