首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在仍在运行服务器的情况下在Node.js中杀除子进程

问在仍在运行服务器的情况下在Node.js中杀除子进程
EN

Stack Overflow用户
提问于 2019-03-21 02:39:13
回答 1查看 123关注 0票数 0

我正在尝试杀死我在服务器中运行的一个子进程。基本上,子进程运行johnny-five代码,这是我在React到我的服务器的在线终端中编写的代码。当我运行子进程时,代码运行得很好,但是如果我想要杀死子进程,我必须停止服务器。我尝试过用Control-C和.exit()这样做,但似乎都不起作用。

​

代码语言:javascript
复制
codeRouter
  .post('/codeAPI', (req, res) => {

    console.log(req.body)
    let fileName = `johnnyFiles/${req.body.currentFile}`
    fs.writeFileSync(fileName, req.body.currentCode, (err) => {
      if (err) throw err
    })
    let id = shortid.generate()
    let fileObject = {
      fileName: req.body.currentFile,
      fileContents: req.body.currentCode,
      ID: id
    }
    data = [fileObject, ...data]
    fs.writeFileSync('data/fileData.json', JSON.stringify(data), (err) => {
      if (err) throw err
    })

    res.json(data)
    ///////////////////////////////////////////
    let nodeSpawn = spawn('node', [fileName], {
      //detached: true,
      shell: true
    })
    nodeSpawn.stdout.on('data', (data) => {
      console.log("OUTPUT", data.toString())
    })
    nodeSpawn.stderr.on('data', (data) => {
      console.log("ERRORS", data.toString())
    })
    nodeSpawn.on('exit', (code) => {
      console.log(`Child exited with code ${code}`)
      nodeSpawn.kill('SIGINT')
    })



  })

​

`

EN

回答 1

Stack Overflow用户

发布于 2019-03-21 03:07:45

您可以使用linux命令行。

要使用该命令查看正在运行的进程,请使用:

代码语言:javascript
复制
pgrep node

要终止进程,可以使用以下命令:

代码语言:javascript
复制
kill <pid>

或者强制关机

代码语言:javascript
复制
kill -9 <pid>

或者,如果您想要杀死所有节点进程

代码语言:javascript
复制
kill $(pgrep node) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55267989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档