Articles of 处理

在Java中启动Shell脚本并销毁退出上的所有进程

我需要一些特殊的设置来控制LED墙。 可悲的是我真的不能改变我使用的编程语言。 我的设置看起来像这样: 处理(一些疯狂的java叉…)草图启动后启动进程。 处理草图扫描子文件夹的文件夹(可以启动和控制LED墙的其他草图),并启动Web服务器。 服务器呈现所有扫描的文件夹列表。 点击“networking服务器”,通过ProcessBuilder启动选定的草图。 处理草图看起来像这样: import http.*; import java.util.*; import java.lang.*; SimpleHTTPServer server; String prog = ""; int ExitValue = 1; ProcessBuilder preparedsketch; Process runningsketch; void setup() { SimpleHTTPServer.useIndexHtml = false; server = new SimpleHTTPServer(this); TemplateFileHandler templateHandler = new ResultFiles("index.ftl"); server.createContext("", templateHandler); } class ResultFiles extends TemplateFileHandler { public ResultFiles(String templateFileName) { […]

检查安装的信号处理程序

我有一个库为SIGSEGV安装一个信号处理程序进行debugging。 SIGSEGV处理程序只是打印一些信息,然后退出程序。 最近,我需要从Java调用这个库(使用JNI),而我遇到的问题是JVM还为SIGSEGV安装了一个信号处理程序,以实现比我更有用的目的。 所以我想要select的行动是,如果我的图书馆发现一个信号处理程序已经安装了一个信号,它根本不会安装任何信号。 为了清楚起见,我正在使用sigaction调用。 现在要实现我的function,我必须做的是: 一个。 阻止所有信号。 湾 调用sigaction并检查oact是否返回有效的处理程序。 C。 如果是这样的话,请重新调用sigaction作为新的行为。 d。 UNBLOCK信号。 B和C似乎对我来说很麻烦。 我想要的是能够确定一个特定的信号是否已经拥有一个处理程序,而不必先replace该处理程序,然后用原始处理程序重新replace它(无所作为)。 有没有比sigaction更细粒度的东西?

哪个驱动程序是一个句柄的所有者?

有没有什么办法可以确定哪个车手是hanlde的车主? 我的意思是它存储在Windows对象的任何地方? 我可以通过volatilty看到句柄,但所有内核句柄都分配给System.exe pid:4,我需要确切地知道哪个驱动程序正在使用此系统句柄? 谢谢

closures控制台时如何正确处理SIGBREAK?

我必须捕捉控制台事件closuresbutton上的点击 ,这与ctrl-break事件SIGBREAK相对应,但显然有一种超时,它不允许我做超过5秒的任何事情,在程序似乎中止之后所以消息“正确结束!”将永远不会发生)。 如何强制系统执行closures操作直至结束(或将超时延长至60秒)? 注意:使用相同的方法,我可以使用fflush(stdout);成功处理CTRL + C事件( SIGINT fflush(stdout); 在doStuffs();之前doStuffs(); 注2:我的代码是基于这个答案: https : //stackoverflow.com/a/181594/1529139 #include <csignal> void foo(int sig) { signal(sig, foo); // (reset for next signal) // do stuffs which takes aboutly 15 seconds doStuffs(); cout << "Properly ended !"; } int main(DWORD argc, LPWSTR *argv) { signal(SIGBREAK, foo); myProgramLoop(); }

为什么可执行文件和可链接格式(ELF)文件包含一组节?

这些天,我指的是Linux中的文件处理系统调用。 此外,我理解ELF是可执行和可链接的格式,包含一组部分。 那些是.bss , .data , .rodata , .text , .comment和unknown 我提到了维基百科和这个网站去学习 所以我有下面的问题 为什么ELF文件使用一组部分? 每个部分的任务是什么? 这套使用的部分有什么可行性?

如何在Linux中显示哪个进程拥有磁盘空间

我已经运行这些命令来确定我的Linux系统上的磁盘空间使用情况。 Filesystem Size Used Avail Use% Mounted on /dev/mapper/foovg-foo 326G 202G 108G 66% /export/data/foo du -sk * | awk '{sum += $1}END{print sum}' du -sk * | awk '{sum += $1}END{print sum}' 132161064〜126GB 那么,202G – 126G = 76G的差异。 76G磁盘空间在哪里? 我怎样才能找出哪个进程持有文件句柄? 什么是文件名删除? 在Linux中, /proc/pid/fd/下的文件描述符是实际文件的软链接。

sem_wait和信号处理程序

为什么sem_wait不能用于信号处理程序(特别是每个线程的SIGSEGV信号)? 有人可以给我一个例子,它会使应用程序崩溃吗? 我猜sem_wait是可重入和线程安全的 ,那么这里有什么问题? 为什么它不是asynchronous安全的 ?

如何在没有进程被操作系统冻结或杀死的情况下将大数字写入文件?

在一个C ++程序(Linux)中,我需要写一些数字(整数,每行一个数字)到一个文件中,并且大小可能非常大(目前为25GB)。 数字为1,-1或0,用于logging大图中节点和弧的连接。 所有的输出都写入一个文件(.txt)由std :: ofstream << … 打印代码结构是: for loop1 (node size) for loop2 (arc size) filename << ……. 如果输出尺寸较小,则效果良好。 但是,当输出尺寸较大时,正在运行编程的shellterminal将被冻结。 但是这个过程仍然在运行,经过很长时间(几个小时),它被OS所杀。 没有错误,警告,分割falutspopup。 有什么可能的原因? 我试图在网上search,但没有find我所需要的。 谢谢 这是ulimit -a的输出 core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 399360 max […]

释放信号处理程序中的内存

我正在编写一个使用套接字的API。 在API中,我为各种项目分配内存。 我想确保closures套接字并释放内存,以防出现Ctrl-C等信号。 在研究这个时,看起来free()不在安全函数列表(man 7信号)上,所以我不能释放信号处理程序里面的内存。 虽然我可以closures套接字。 有没有关于如何释放记忆的想法? 预先感谢您的时间。

Linux – 查找进程是否准备好或正在运行

我正在开发一个具有进程监视function的C ++应用程序,它监视基于这个模型的状态变化: http : //www.macdesign.net/capella/it4813/images/stallings-Linux_process-thread_states-f4.18.png 然而,由于/ proc / pid / status将“就绪”和“执行”状态结合为“运行”状态,所以我不知道如何才能找出这些进程实际上处于哪种状态。提供关于如何发现这一点的任何build议?