标签: multiple-processes

在node.js中生成一个新的独立进程

有没有办法从当前运行的脚本中生成一个新的独立进程?

我正在尝试从已运行的脚本运行新脚本。新脚本应该独立于调用它的脚本。

javascript node.js multiple-processes

5
推荐指数
1
解决办法
3420
查看次数

sigsuspend相当于原子系列的sigprocmask、pause、sigprocmask?

我正在阅读教科书关于 Linux x86-64 系统的信号/ECF 的章节(CS:APP,第 3 版,第 8 章,第 781 页),并发现了以下内容:

sigsuspend 函数暂时用 mask 替换当前的阻塞集,然后挂起进程,直到收到一个信号,该信号的操作是运行处理程序或终止进程。如果操作是终止,则进程将终止,而不从 sigsuspend 返回。如果操作是运行处理程序,则 sigsuspend 在处理程序返回后返回,将阻塞集恢复到调用 sigsuspend 时的状态。

sigsuspend 函数相当于以下函数的原子(不可中断)版本:

1       sigprocmask(SIG_BLOCK, &mask, &prev);
2       pause();
3       sigprocmask(SIG_SETMASK, &prev, NULL);
Run Code Online (Sandbox Code Playgroud)

据我了解,sigprocmask(SIG_BLOCK, &mask, &prev)应该导致阻塞集与掩码进行“或”运算,即将掩码中的信号添加到阻塞集中已有的信号中。但代码正上方的文本(以及我查找的 sigsuspend 的手册页)表示 sigsuspend“暂时用掩码替换当前的阻塞集”。对我来说,这听起来更像是sigprocmask(SIG_SETMASK, &mask, &prev),阻塞集设置为等于掩码中的信号。

那么为什么sigsuspend(&mask)等价于上面的代码(第 1-3 行)而不是下面的代码(第 4-6 行)呢?我对 signal.h 函数的直觉和/或理解哪里出了问题?

4       sigprocmask(SIG_SETMASK, &mask, &prev);
5       pause();
6       sigprocmask(SIG_SETMASK, &prev, NULL);
Run Code Online (Sandbox Code Playgroud)

如果我不清楚,让我问一个具体的问题(它可能会更好地解释我的直觉)。假设当前的阻塞集编码 SIGCHLD,而 sigset_t 掩码编码 SIGINT。我打电话sigsuspend(&mask)。无论哪种代码解释是正确的(第 1-3 行或第 4-6 行),在调用 sigsuspend 之后传递的 SIGINT …

c signals exception signal-handling multiple-processes

5
推荐指数
1
解决办法
468
查看次数

无法在多个进程中运行:IOLoop实例已初始化.在调用start_processes()之前,不能调用IOLoop.instance()

我正在尝试在Tornado中运行多个进程,我尝试了在这个线程上提出的建议:运行多个龙卷风进程

但错误并没有消失.这是服务器文件.

server.py

import os
import sys
import tornado
#import pymongo

from tornado import ioloop, web, httpserver, websocket
from tornado.options import options

#Loading default setting files
import settings


#Motorengine - ODM for mongodb
#from motorengine import connect

app = tornado.web.Application(handlers=[
  (r'/', MainHandler),
  (r'/ws', WSHandler),
  (r'/public/(.*)', tornado.web.StaticFileHandler, {'path': options.public_path})],
  template_path=os.path.join(os.path.dirname(__file__), "app/templates"),
  static_path= options.static_path,
  autoreload=True,
  #images=os.path.join(os.path.dirname(__file__), "images"),
  debug=False)

if __name__ == '__main__':
   #read settings from commandline
    options.parse_command_line()
    server = tornado.httpserver.HTTPServer(app, max_buffer_size=1024*1024*201)
    server.bind(options.port)
    # autodetect cpu cores and fork one process per …
Run Code Online (Sandbox Code Playgroud)

python tornado multiple-processes

3
推荐指数
1
解决办法
2760
查看次数

在C中创建新进程和子进程之间的区别(Windows)

我想从代码本身创建一个exe的新进程,这样我就可以有两个并行的进程.

但是,我希望他们是独立的过程,而不是亲子.

有没有办法在C(Windows)中执行此操作?

c windows multiple-processes

2
推荐指数
1
解决办法
4275
查看次数