草庐IT

多进程架构

全部标签

具有不受信任完整性级别的 Windows 进程

我找不到很多关于Windows中不受信任的完整性级别的信息,对此有一些疑问:是否有不受信任的完整性级别进程可以创建命名对象的地方?(互斥锁、事件等)不受信任的完整性级别进程是否应该能够打开一个现有的命名对象,该对象在其创建时通过ACE和SYSTEM_MANDATORY_LABEL_NO_WRITE_UP被赋予安全描述符到MandatoryLevelUntrusted?当我尝试时,它失败并显示0xc0000022(访问被拒绝),而使用MandatoryLevelLow时效果很好。通常不受信任的完整性进程如何与其代理进程通信?(比如googlechrome标签如何与googlechrome

python - 来自 python 子进程的基本 cygwin 命令

我想从python运行cygwin并执行cygwin命令。我使用的是Windows,所以我想在cygwin而不是cmd中运行命令。我正在使用Python3.6.1。我只想知道如何运行基本命令,这样我就可以像ls一样从那里开始工作。我试过:subprocess.call("E:/cygwin/bin/bash.exe","ls")(类似这样的东西,但它不起作用)@pstatix建议的以下解决方案,它使用Popen()。在stdin.write(b'ls')之后运行stdin.close()导致/usr/bin/bash:line1:ls:commandnotfound错误我可以做到以下几

python - 获取进程启动的工作目录

Windows和Python。在当前工作目录更改后,是否可以获取启动进程(不受我控制)的工作目录?我怀疑Windows会不可挽回地丢失此信息,但正在寻求确认。 最佳答案 由eryksun指定:Pythonaddsthescriptdirectorytosys.path,nottheworkingdirectory.TheWindowsProcessParametersstoretheDosPathstringandHandlefortheworkingdirectory.Alltracesoftheinitialworkingdir

c++ - boost::进程间共享内存

我的环境是Windows2008/2012C++VS2013。我希望STL映射在热重启后持续存在。使用boost:interprocess是一种解决方案,其中重新启动的应用程序是服务器端对map进行更新,而另一个客户端应用程序将连接到同一个共享内存段,以使其在服务器应用程序崩溃时保持“事件状态”/出于任何原因重新启动? 最佳答案 是的,你可以做到这一点。您可以使用interprocess::shared_ptr来获取您建议的引用计数。请记住,映射内存并非神奇的事务性,因此如果出现硬故障,则可能会出现损坏。如果您需要稳健的状态持久性,

windows - Chocolatey - 此包不支持 64 位架构

我已经创建了我的前两个Chocolatey包。它们都将安装程序捆绑在.nupkg中。我正在通过从磁盘安装它们来测试这些包。第一个包工作得很好。然而,第二个包给我以下错误:ERROR:Thispackagedoesnotsupport64bitarchitecture.这两个包都在安装针对x86架构的应用程序,因此错误似乎是错误的。 最佳答案 好吧,我找到了this几乎在发布我的问题后立即。不知道我第一次怎么没找到它。Thismessageisfromhttps://github.com/chocolatey/choco/issues

windows - 在 Docker for Windows 中,如何防止容器在守护进程启动时自动启动?

每次我的DockerforWindows守护进程启动时,它都会启动7个不同的容器。我可以通过dockerkill每个容器..我可以启动额外的容器,做其他事情等等,一切都很好......直到我重新启动。一旦我重新启动docker守护进程,它们就会再次出现,完全相同的7个容器。我可以去哪里清除它们成为自动重启的候选人? 最佳答案 也许这些容器有一个重启策略,这将使Docker在每次发现它们不存在时运行它们?您可以confirmitwithadockerinspect.如果您看到它们在运行,请在杀死它们之前尝试到dockerupdatet

windows - 进程完成时超时或关闭

我有一个X.exe程序,大约需要2-6小时才能完成。确切时间未知,但我想实现6.5或7小时的阈值。如果这个程序在这段时间内没有返回任何值,它就会被杀死。我如何使用批处理*.bat文件来实现它?这是我目前所拥有的:一个计时器bat1.bat和一个实际的bat2.bat。bat1.bat:startcmd/Cbat2.bat&timeout/t25200&taskkill/imX.exe/fbat2.bat:cdblahbat1.bat此方法的问题在于,只有在25200秒(或7小时)后,计时器才会停止,并且不会在该限制之前终止。我如何告诉计算机,如果程序X.exe已完成,那么不要再等待了?

Windows 进程关联

我正在寻找一种方法来确定给定进程中的不同线程是否在不同的内核上运行。我想弄清楚它们是否真正并行运行。GetProcessAffinityMask告诉我进程被允许做什么,但它没有告诉我两个具体的运行线程是如何运行的。谢谢。 最佳答案 您可以比较GetCurrentProcessorNumber的结果在不同的线程上执行。MSDN描述:Retrievesthenumberoftheprocessorthecurrentthreadwasrunningonduringthecalltothisfunction.

windows - 检测 "suspended"Windows 8/10 进程

Windows8/10中的UWP(或“Metro”)应用程序不在前台时可以暂停。处于此状态的应用程序继续存在但不再消耗CPU时间。引入此更改似乎是为了提高平板电脑和手机等低功耗/存储设备的性能。检测处于这种状态的进程的最优雅、最简单的方法是什么?目前我可以看到2种可能的解决方案:调用NtQuerySystemInformation()并枚举每个进程和每个线程。如果所有线程都处于挂起状态,则进程被“挂起”。这种方法将需要大量代码,而且关键的是NtQuerySystemInformation()只是半文档化的,可能会在未来的操作系统中被删除。NtQueryInformationProces

c++ - 使用重定向标准输入处理子进程中的 kbhit

我编写了一个启动另一个进程并使用WindowsAPI(CreateProcess、CreatePipe等)将其标准I/O重定向到管道的程序该程序应启动多个不同的控制台程序并使用stdio与它们通信。这一切都运行良好(我可以写入进程的标准输入并使用管道从进程中读取)直到我尝试启动并与使用kbhit的程序通信。为了简化我想开始的程序对标准输入的处理:while(1){if(kbhit()){fgets(line,sizeof(line),stdin);//dosomethingwithline}Sleep(100);}结果是fgets永远不会被调用,因为kbhit不会返回true,即使我已