草庐IT

external-system

全部标签

从多线程程序调用 system()

我们正在开发一个用C++编写的多线程内存消耗应用程序。我们必须执行大量的shellscript/linux命令(并获取返回码)。看完之后article我们清楚地知道在我们的上下文中使用system()是一个坏主意。一个解决方案是在程序启动之后和创建任何线程之前进行fork但与该进程的通信可能并不容易(套接字、管道?)。我们考虑的第二个解决方案可能包括一个用python编写的专用守护进程(使用xinetd?),它能够处理我们的系统调用。你遇到过这样的问题吗?你是怎么解决的?注意:这是解释此问题的更完整的文章:http://developers.sun.com/solaris/articl

java - 我应该使用哪个 WindowBuilder Swing 小部件来显示 System.out "console"?

当我将Linux控制台应用程序升级到Swing应用程序时,我不想放弃程序打印到System.out的所有数据的可见性。如果我将它转储到文件中,我可能永远看不到重要的东西。我应该使用哪个WindowBuilderSwing小部件来制作System.out“控制台”显示?(我正在使用Java、Eclipse、ubuntu、Swing和WindowBuilder。)编辑:我使用了jfpoilpret的建议和Mohaimin的建议。结果是对JTextArea的私有(private)静态引用(在WindowBuilder结构内的可滚动Pane内)。然后我使用getter方法公开JTextArea

python - 在 python 中将 SIGINT 发送到 os.system

我正在尝试使用os.system()在python中运行Linux命令strace-c./client。当我按下Ctrl+C时,我在终端上得到了一些输出。我必须在一分钟后以编程方式发送“进程正确停止”信号,并希望在文件中按Ctrl+C后生成的终端输出。伪脚本将非常有用。如果我使用subprocess.Popen然后从键盘发送Ctrl+C信号我没有在终端上得到输出,所以必须使用操作系统系统 最佳答案 在Python中,您可以使用os.kill以编程方式发送Ctrl+C信号.问题是,您需要将接收信号的进程的pid,而os.system不

c++ - 如何在 C++ 中转义发送到 'system' 命令的变量?

Thisquestion谈论使用system命令和传递变量。这是它给出的一个例子:stringcmd("curl-bcookie.txt-dtest=");cmd+=line;cmd+="http://example.com";system(cmd.c_str());其中一条评论提到,如果line被传递并包含foo&fire_nukes.exe&REM那么很可能会发生一些不好的事情。PHP有一个很棒的函数,叫做escape_shell_args,它可以用来转义传递给程序的参数。C++有办法做到这一点吗? 最佳答案 永远不要将用户输入

c - 为什么是$?调用 system() 后总是 0?

我正在Linux下测试这个小程序://foo.c#include#includeintmain(intargc,char*argv[]){intn=system(argv[1]);printf("%d\n",n);returnn;}无论输入命令行的是什么,echo$?总是打印0,例如:$./fooanythingsh:anything:notfound32512$echo$?0我的问题是:为什么$?与n的值不同?我还在Win32下测试了该程序,echo%errorlevel%给出了与n相同的值。谢谢! 最佳答案 如果以八进制或十六进

linux - 如何在 IntelliJ/WebStorm/PhpStorm 中从 "external tools"运行 sudo 脚本?

我希望我的root-requiringbash脚本从IntelliJ/WebStorm运行,在我运行它时要求我输入root密码。在脚本中硬编码我的root密码当然是个坏主意。IntelliJ/WebStorm由于这样的原因实际上有一个$Prompt$宏,它会提示您并将您的输入用作值。所以我尝试使用$Prompt$和echoYOU​​RPASSWORD|sudo-Syourcommand如use-sudo-with-password-as-parameter中所述.然后我将密码和脚本传递给sudorun.sh脚本echo-e$1|sudo-S$2$3$4(因为echo不能是“程序”行)虽

linux - glassfish 无法启动 GLib-GIO-ERROR ** : Settings schema 'org.gnome.system.proxy' is not installed

我在openjdk7、debian7amd64上使用glassfish2.1。Glassfish无法启动,显示glassfish无法启动GLib-GIO-ERROR**:未安装设置架构“org.gnome.system.proxy”,有什么想法吗??? 最佳答案 尝试安装gsettings-desktop-schemas。 关于linux-glassfish无法启动GLib-GIO-ERROR**:Settingsschema'org.gnome.system.proxy'isnotin

c - 如何获取 system() 运行的命令的状态

我在我的C代码中使用了一个系统调用#include#includeintmain(intargc,char*argv[]){inta=system("./test12.out");//hereifigiveanywrongcommandsystem("echo$?")printf("systemreturnis%d",a);}我的当前文件夹中没有任何test12.out文件。现在输出是sh:./test12.out:Nosuchfileordirectory0systemreturnis32512这是我的shell命令失败,但我如何在我的C代码中知道这一点?编辑:那么,我可以这样做吗i

java - Java 可以与 System V linux 消息队列交互吗?

我需要将信息从shell脚本(从基于linux的应用程序调用)传递到java应用程序。命名管道很麻烦,因为我无法在不考虑对管道读/写端的复杂影响的情况下启动/停止任何一项服务。套接字很难,因为如果重新启动监听过程,则没有排队机制,简单的实现需要不断创建新的套接字(否则shell脚本会因检查并重新启动而变得非常复杂-套接字和排队代码)。我最近在阅读这些SystemV/POSIXlinux消息队列。我正在运行Fedora12,想知道是否有配置这些消息队列并从Java与它们交互的好方法。 最佳答案 您不能直接使用它们,您必须使用一些JNI

c++ - Ubuntu System Monitor 和 valgrind 发现 C++ 应用程序中的内存泄漏

我正在用C++编写一个应用程序,它使用了一些外部开源库。我试图查看Ubuntu系统监视器以获取有关我的进程如何使用资源的信息,并且我注意到驻留内存继续增加到非常大的值(超过100MiB)。此应用程序应在嵌入式设备中运行,因此我必须小心。我开始认为应该有(一些)内存泄漏,所以我正在使用valgrind。不幸的是,似乎valgrind没有报告明显的内存泄漏,只有我正在使用的库中的一些小问题,仅此而已。那么,我是否必须得出结论,我的算法确实使用了那么多内存?这对我来说似乎很奇怪......或者我可能误解了系统监视器列的含义?当与软件分析相关时,有人可以阐明系统监视器中“虚拟内存”、“常驻内存