我必须在Windows上运行我的Ruby代码中的外部可执行文件,为此,我正在使用
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Force to exclude the trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^(.+)/$ $1 [R=307,L]
# Restrict php files direct access
RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ]
RewriteRule \.php$ - [F]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
</IfModule>
方法。
有时我必须经常运行相同的程序,它会很快执行,然后立即退出。我不会在几秒钟内运行该程序并不重要。
问题是 - 有时我会收到此错误:
spawn
我试图安全地拯救和/或阻止主要Ruby程序崩溃失败了我尝试过的任何方法,即使是这个例子:
C:/Program Files/Ruby22/lib/ruby/2.2.0/open3.rb:193:in `spawn':
Resource temporarily unavailable - identify (Errno::EAGAIN)````
我无法得到正确的结果。
如何解救此案例或如何正确穿线/分叉并防止主程序崩溃?
(如果可能的话 - 不调整内核/其他参数以增加最大进程?)。
答案 0 :(得分:1)
我通过仔细阅读Ruby Wiki
找到了The parent process should use Process.wait to collect the termination
status of its child or use Process.detach to register disinterest in their
status; otherwise, the operating system may accumulate zombie processes.
如果我这样做,我就不会再犯这个错误了:
pid = spawn( "#{cmd}" )
Process.detach pid