小编Hon*_*rek的帖子

在Windows上正常终止命令行应用程序

我正在创建一个命令行应用程序,它产生一个进程(由用户定义的命令,通常是一个HTTP服务器),当应用程序的工作完成时,我想让进程知道它应该终止.

在UNIX中,我可以通过发送SIGTERM来做到这一点,如果进程没有结束,那么我可以通过SIGKILL残酷杀死它.

在Windows中,我很难找到SIGTERM场景的替代方案.我学到了taskkill /PID XXXX(没有/f!),但是

  1. 我没有找到关于taskkill /PID XXXX幕后内容的信息,因此我无法测试它.我找不到如何处理taskkill /PID XXXX进程端的任何发送.
  2. 它似乎不适用于命令cmd.exe.我尝试在一个中运行一个简单的服务器进程cmd.exe,获取其PID并在另一个窗口中运行taskkill /PID XXXX它,但taskkill拒绝这样做:ERROR: The process with PID XXXX could not be terminated. Reason: This process can only be terminated forcefully (with /F option).

所以我的问题是:如何通知Windows中的命令行进程它应该终止而不强行终止它?如何在待终止进程方面接收和处理此类消息?

windows process taskkill

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

访问财产"Arbiter"的权限被拒绝

我有一个iframe FB应用程序.我们有三个地方开发它:我的localhost,我们测试应用程序的舞台服务器,生产服务器.Localhost和生产都有HTTPS.Localhost和stage应用程序启用了沙箱模式.所有版本的应用程序都是相同的,代码是相同的.除HTTPS之外,舞台和制作完全相同,具有相同的设置.

现在只在我的舞台服务器应用程序中发生了什么:当我点击应该召唤jQuery UI对话框的东西时,它会在我的Firebug中引发跟随错误:Permission denied to access property 'Arbiter'.然后没有召唤对话.它以某种方式动态加载canvas_proxy.php,在此代码中:

/**
 * Parses the fragment and calls Arbiter.inform(method, params)
 *
 * @author ptarjan
 */
function doFragmentSend() {
  var
    location = window.location.toString(),
    fragment = location.substr(location.indexOf('#') + 1),
    params = {},
    parts = fragment.split('&'),
    i,
    pair;

  lowerPageDomain();

  for (i=0; i<parts.length; i++) {
    pair = parts[i].split('=', 2);
    params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
  }
  var p = params.relation ? resolveRelation(params.relation) : parent.parent;

  // The user is not inside a frame (probably testing on …
Run Code Online (Sandbox Code Playgroud)

javascript facebook

4
推荐指数
1
解决办法
7612
查看次数

如何运行 Python 子进程和流,同时过滤 stdout 和 stderr?

我有一个类似服务器的应用程序,我想从 Python 运行。它永远不会停止,直到用户中断它。我想在应用程序运行时不断将 stdout 和 stderr 重定向到父级。幸运的是,这正是subprocess.run它的作用。

贝壳:

$ my-app
1
2
3
...
Run Code Online (Sandbox Code Playgroud)

wrapper.py

import subprocess
subprocess.run(['my-app'])
Run Code Online (Sandbox Code Playgroud)

执行wrapper.py

$ python wrapper.py
1
2
3
...
Run Code Online (Sandbox Code Playgroud)

我相信这要归功于subprocess.run从父进程继承 stdout 和 stderr 文件描述符这一事实。好的。

但是现在我需要在应用程序输出特定行时做一些事情。想象一下,当输出行包含4以下内容时,我想运行任意 Python 代码:

$ python wrapper.py
1
2
3
4   <-- here I want to do something
...
Run Code Online (Sandbox Code Playgroud)

或者我想从输出中删除一些行:

$ python wrapper.py   <-- allowed only odd numbers
1
3
...
Run Code Online (Sandbox Code Playgroud)

我以为我可以有一个过滤函数,我会以某种方式将其挂接到,subprocess.run并且它会在输出的每一行中被调用,无论它是 stdout 还是 stderr:

def filter_fn(line):
    if line …
Run Code Online (Sandbox Code Playgroud)

python subprocess python-3.x

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

如何使用Mongoose获取MongoDB集合的大小(字节)?

想象一下,我有一个像这样的Mongoose模型:

mongoose = require('mongoose')
Products = mongoose.model('Products')
Run Code Online (Sandbox Code Playgroud)

如何以字节为单位获取完整对应集合的大小?我找到了db.collection.storageSize,但在Mongoose API文档中找不到它.

mongoose mongodb node.js

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