草庐IT

多进程架构

全部标签

c++ - 进程终止 C++

我有以下问题:我有一个用C++编写的应用程序(永不结束的服务器)作为服务运行,在主线程中还包含3个线程(主要执行IO)。在主循环中,我捕获了所有可能的异常。进程终止,主循环或线程本身没有打印任何内容。我在事件日志中看到进程以代码1000停止。Windows是否像在unix中一样创建核心文件?如果我从事件日志中得到一个内存地址,是否有任何方法可以知道它发生在应用程序的哪个部分?也许这是一个线索:在它发生的同时我启动了另一个应用程序(不同类型)。 最佳答案 尝试将windbg设置为事后调试器。安装windbg从命令行执行“windbg-

c++ - 有没有办法为另一个进程设置 token ?

有SetThreadToken()函数,但没有“SetProcessToken()”这样的函数。有没有办法为另一个进程设置token?“SetProcessToken()”怎么写? 最佳答案 是的,你可以,使用未记录的NtSetInformationProcess函数,但是一旦进程开始运行,进程token就被锁定并且不能再被修改。因此,您必须使用CREATE_SUSPENDED创建标志启动进程,设置进程token,然后使用ResumeThread()恢复进程。为了设置进程token,调用者必须拥有并启用SeAssignPrimary

c++ - 获取具体进程内存空间

我有一个函数指针(void*),我想知道这个函数属于哪个进程。我不知道该怎么做,但我认为可以通过使用某种形式的VirtualQuery技巧来实现。任何帮助将不胜感激。提前致谢澄清:“属于进程”是指函数所在的进程。例如:假设内存中加载了一个可执行文件(test.exe)。该可执行文件包含一个名为SayHello的函数,它位于内存中的0xDEADBEEF处。在一个完全不同的过程中,我怎么知道0xDEADBEEF在test.exe的内存空间中。希望事情已经解决了。澄清2:我相信您熟悉“VTableHook”,其中外部模块在单独的进程中更改VTable指针以指向不同的函数。因此,无论何时调用H

python - 如何使用子进程和 Popen 从我的 .exe 中获取所有输出?

我正在尝试运行可执行文件并使用subprocess.Popen捕获其输出;但是,我似乎并没有得到所有的输出。importsubprocessassfromsubprocessimportPopenimportosps=Popen(r'C:\Tools\Dvb_pid_3_0.exe',stdin=s.PIPE,stdout=s.PIPE)print'pOpendone..'while:line=ps.stdout.readline()printline手动打开时比原来的exe文件少打印两行。我尝试了另一种方法,结果相同:f=open('myprogram_output.txt','w'

c++ - 如何为 Windows 编写一个无法杀死的进程?

我正在寻找一种编写应用程序的方法。我使用VisualC++6.0。我需要阻止用户通过任务管理器关闭此进程。 最佳答案 你做不到。 关于c++-如何为Windows编写一个无法杀死的进程?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/992671/

c - 用 C 编写了一个 hello world 程序,但现在我无法终止该进程

这个问题在这里已经有了答案:RunningmyC++codegivesmeablankconsole(1个回答)关闭6年前。我编写了一个简单的helloworld程序,它应该将hello打印到控制台。我使用gcc编译它。一旦我尝试运行.exe文件,它就会在我的鼠标指针旁边创建一个蓝色的小旋转器,并且它不会消失。我试图使用taskkill终止进程(我在windows7上),但它不起作用。也许代码中存在错误?我尝试过的事情:从Windows任务管理器结束进程taskkill/IMhelloworld.exe/ftl;dr一个helloworld程序即使使用taskkill也不会退出#inc

linux - 我们如何将 oracle 密码通过管道传递给在 Windows/Linux 上后台运行的 sqlplus 进程?

我有一个要求,比如我需要在Linux和Windows平台的后台执行一个长时间运行的sql脚本,比如test.sql。但是如果我像这样执行test.sql-nohupsqlplusapps/@test.sql&然后ps-eaf命令的输出泄露了我们在命令行上传递的应用程序密码。在Unix上,我可以想到命名管道将密码通过管道传输到后台运行的进程-catpipe|nohupsqlplusapps@test.sql&但是在Windows上,没有直接的方法来实现命名管道。那么,是否有任何其他方法可以将oracle密码传递/通过管道传输到后台运行的sqlplus进程?这样ps-eaf就不会在控制台上

c++ - 如何获取具有可见窗口的任何进程的名称 - WinAPI?

我正在尝试获取具有可见窗口的进程的名称。例如,如果我打开了Chrome,我想获取字符串“chrome.exe”,但我只能使用下面的代码获取初始值“unknown”。我读到它可能是一个访问权限问题,你能建议我如何更改它们以获得进程名称吗?DWORDidProc=0;//pointertotheprocesswhichcreatedthewindowDWORDidThread=GetWindowThreadProcessId(Wnd->get_handle(),&idProc);Wnd->set_pid(idThread);//Wndisanobjectofaclassicreated,t

php - 如何找出特定进程仍在PHP中运行

我正在编写一个脚本来构建其他脚本的队列并管理它们的启动。管理器脚本应该知道哪个子进程已经完成,所以它可以启动队列中等待的其他脚本。我添加了一个“&echo$!”获取每个子进程的进程ID。所以我有我的子进程进程ID,现在我正在使用系统“ps”程序调用来查找子进程是否仍在运行。问题是我的脚本目前只能在类Unix系统中运行。我不知道如何在Windows中获取我child的PID,而且我的脚本还没有在Windows中解析“tasklist”命令的输出。还有其他方法可以实现吗?任何in-PHP解决方案来查找子进程是否仍在运行?启动其他进程(非阻塞)并检查它们是否仍在运行的解决方案。

c# - 如何找出哪个进程正在使用 .NET 锁定文件?

我看过几个关于使用Handle的答案或ProcessMonitor,但我希望能够在我自己的代码(C#)中找到答案哪个进程正在锁定文件。我有一种讨厌的感觉,我将不得不在win32API中四处探索,但是如果有人已经这样做并且可以让我走上正轨,我将非常感谢您的帮助。更新类似问题的链接Howdoesonefigureoutwhatprocesslockedafileusingc#?CommandlinetoolAcrossaNetworkLockingaUSBdeviceUnittestfailswithlockedfiledeletinglockedfile 最佳