是否可以在“在Node-RED上部署”上关闭长时间运行的进程的实例?

时间:2019-06-18 20:52:47

标签: node-red

我正在node-red-node-daemon的节点Node-RED上执行长时间运行的过程。但是,在我重新部署项目的所有时间中,它都会创建正在运行的脚本的新实例(它不会杀死已经在运行的实例,并且会在部署时创建一个新的实例,因此,如果我将项目部署10次,操作系统将运行我脚本的10个实例。

enter image description here

据我从此节点了解到,应该在Node-RED关闭时杀死脚本(我假设关闭Node-RED是在部署时完成的)。但这并没有我预期的那样。我想念什么吗?重新部署时是否有可能杀死Node-RED上一个长时间运行的进程?所以我们不创建它的新实例吗?


编辑

我在问题中所说的长期运行的过程是在Linux机器上运行inotifywait命令的bash脚本(在Windows上不能使用它)。这是它的简化版本:

#!/bin/bash

WATCHEDFOLDER='/home/user/watchedfolder'
id=''
event=''
file=''

main () {
   if [ "$event" == "MOVED_TO" ]; then
      echo -n "$id""$file"
   fi
}

inotifyInterruption () {
   inotifywait --format="%w^%e^%f" -q -m -e move "$WATCHEDFOLDER" |
      while IFS='^' read idLocal eventLocal fileLocal; do
         id="$idLocal"
         event="$eventLocal"
         file="$fileLocal"
         main
      done
}   

inotifyInterruption 

这里的想法是,在每次将新文件移动到特定文件夹时,脚本都会打印该文件的完整路径(并因此将其作为Node-RED上的msg.payload发送到下一个节点)。 。综上所述,在此脚本中创建新实例的问题在于,将其部署10次后,将好像有10个同名文件到达监视文件夹一样。

0 个答案:

没有答案