草庐IT

exec_proc

全部标签

c - 我怎样才能将每个/proc/net/tcp 条目匹配到每个打开的套接字?

我正在尝试从/proc/net/tcp解析套接字信息,虽然我可以识别一些字段,例如内存地址或发送队列使用,但我无法找到每个条目如何绑定(bind)到它的套接字描述符。例如,使用此数据:1:5922140A:E459D5C43B45:00500100000000:0000000000:0000000000000000100005072181f6ab1300573124-1我想知道哪个是相应的套接字描述符。 最佳答案 获取inode编号(在本例中为507218)。该套接字的每个打开文件描述符(同一个套接字可能有多个文件描述符)将显示为以

linux - 从 bash 提示符和脚本向 docker exec 传递参数

我正在尝试在我的mongodbdocker容器中执行命令。在我的linux命令提示符下,它非常简单并且在我执行此操作时可以工作dockerexec-itd886e775dfadmongo--eval'rs.isMaster()'上面告诉我去一个容器并执行命令"mongo--eval'rs.isMaster()'-Thistellsmongototakers.isMaster()asaninputandexecuteit.Thisworksandgivesmetheoutput.因为我试图通过bash脚本自动执行此操作,所以我这样做了cmd="mongo--eval'rs.isMaste

linux - 从 bash 提示符和脚本向 docker exec 传递参数

我正在尝试在我的mongodbdocker容器中执行命令。在我的linux命令提示符下,它非常简单并且在我执行此操作时可以工作dockerexec-itd886e775dfadmongo--eval'rs.isMaster()'上面告诉我去一个容器并执行命令"mongo--eval'rs.isMaster()'-Thistellsmongototakers.isMaster()asaninputandexecuteit.Thisworksandgivesmetheoutput.因为我试图通过bash脚本自动执行此操作,所以我这样做了cmd="mongo--eval'rs.isMaste

linux - 函数 'create_proc_entry' 的隐式声明

我正在尝试使用create_proc_entry()函数在/proc下创建一个目录。当我尝试编译代码时,出现以下错误:函数“create_proc_entry”的隐式声明。这些是我包含在我的.c文件中的header:#include#include#include#include#include#include我尝试编译的机器上的内核版本是:3.10.33-g7954807-dirty我是否缺少调用此方法所需的任何header?或者在我的内核版本中是否弃用了该方法? 最佳答案 /proc文件系统已在3.10中重构,您正在寻找的功能已

linux - 使用 find -exec 重定向 stdout 并且不创建新的 shell

我有一个脚本只将数据写入stdout。我需要为多个文件运行它并为每个输入文件生成不同的输出文件,我想知道如何为此使用find-exec。所以我基本上尝试了几个变体(为了可测试性,我用cat替换了脚本):find*-typef-execcat"{}">"{}.stdout"\;但无法使其工作,因为所有数据都被写入了一个名为{}.stdout的文件。最终,我可以让它工作:find*-typef-execsh-c"cat{}>{}.stdout"\;但是虽然这个最新的形式与cat配合得很好,但我的脚本需要通过几个初始化脚本加载环境变量,因此我最终得到:find*-typef-execsh-c

linux - 使用 sed 从/proc/*/environ weirdness with\x00 获取环境变量

我正在尝试通过其他一些进程环境获取特定的环境变量。所以我一直在尝试像这样的sed命令:sed-n"s/\x00ENV_VAR_NAME=\([^\x00]*\)\x00/\1/p"/proc/pid/environ但我得到的是完整环境文件的输出。如果我只用静态字符串替换\1,我会得到该字符串加上整个环境文件:sed-n"s/\x00ENV_VAR_NAME=\([^\x00]*\)\x00/BLAHBLAH/p"/proc/pid/environ我应该在最后一个例子中得到“BLAHBLAH”。如果我去掉空字符并使用其他一些测试数据集,就不会发生这种情况。这促使我尝试将\x00转换为\x

linux -/proc/net/dev 中字段的含义是什么?

Linux文件/proc/net/dev是这样写的:[me@host~]$cat/proc/net/devInter-|Receive|Transmitface|bytespacketserrsdropfifoframecompressedmulticast|bytespacketserrsdropfifocollscarriercompressed字段drop和errs是什么意思?是否有一些错误数据包也算在丢弃数据包中?为什么一个数据包被认为是errs,是因为它有校验和错误吗?为什么丢包?是系统缓冲不够还是网卡突然爆了?这两个字段是否考虑了发往另一台主机的数据包(例如,当NIC在混杂

c - 什么会导致 exec 失败?接下来发生什么?

exec(execl、execlp等)失败的原因是什么?如果您调用exec并且它返回,除了panic和调用exit之外还有什么最佳实践吗? 最佳答案 处理exec失败的问题在于,通常exec是在子进程中执行的,而您想在父进程中进行错误处理。但是你不能只是exit(errno)因为(1)你不知道错误代码是否适合退出代码,并且(2)你无法区分失败到exec和您exec的新程序的失败退出代码。我知道的最佳解决方案是使用管道来传达exec的成功或失败:在fork之前,在父进程中打开一个管道。fork后,父进程关闭管道的写入端,从读取端读取。

php - 从 php exec() 运行 libreoffice

我已经在带有apache的freebsd-server上安装了libreofficeheadless,以便以编程方式转换文档(例如odt->pdf)。它从命令行工作!但我的目标是能够从php中做到这一点。这要求网络用户(www)可以运行libreoffice。但它不能。以我自己的用户身份运行libreoffice时,我得到:%libreoffice--headless-convert-topdfLitteraturundervisningogit.docjavaPathHelper:notfound#Thisshouldnotbeaproblem,sayspeopleonthenet.

php - 如何调试 exec() 问题?

exec命令在我的服务器上不起作用,它不执行任何操作,我关闭了safe_mode,并验证了所有控制台命令都在工作,我已经尝试使用绝对路径。我检查了应用程序的权限,我需要的所有应用程序都有执行权限。我不知道还能做什么,这里是我尝试过的代码的概要。echoexec('/usr/bin/whoami');echoexec('whoami');exec('whoami2>&1',$output,$return_val);if($return_val!==0){echo'Error';print_r($output);}exec('/usr/bin/whoami2>&1',$output,$re