我在Linux下运行的Java应用程序有问题。 当我启动应用程序,使用默认的最大堆大小(64mb),我看到使用顶部应用程序,240 MB的虚拟内存分配给应用程序。 这就造成了一些与计算机上的其他软件有关的问题,这是相对资源有限的。 据我所知,保留的虚拟内存不会被使用,因为一旦我们达到了堆的限制,就会抛出一个OutOfMemoryError。 我在Windows下运行相同的应用程序,我发现虚拟内存大小和堆大小是相似的。 有什么办法可以在Linux下configuration虚拟内存用于Java进程吗? 编辑1:问题不是堆。 问题是,如果我设置一个128M的堆,例如,仍然Linux分配210 MB的虚拟内存,这是不需要的,永远。** 编辑2:使用ulimit -v可以限制虚拟内存的数量。 如果大小设置在204 MB以下,那么应用程序将不会运行,即使它不需要204MB,只有64MB。 所以我想了解为什么java需要这么多的虚拟内存。 这可以改变吗? 编辑3:系统中还有其他几个正在运行的应用程序。 系统确实有一个虚拟内存限制。 (来自评论,重要的细节)
我一直在寻找一种方法来获取我的C程序中的terminal宽度。 我一直在提出的是: #include <sys/ioctl.h> #include <stdio.h> int main (void) { struct ttysize ts; ioctl(0, TIOCGSIZE, &ts); printf ("lines %d\n", ts.ts_lines); printf ("columns %d\n", ts.ts_cols); } 但每次我尝试我得到 austin@:~$ gcc test.c -o test test.c: In function 'main': test.c:6: error: storage size of 'ts' isn't known test.c:7: error: 'TIOCGSIZE' undeclared (first use in this function) test.c:7: error: (Each […]
对于那些想要回复的人,我应该使用SSH密钥,请放弃 我试图在bash脚本中使用expect来提供SSH密码。 提供密码的工作,但我不会在SSH会话中,因为我应该,回到bash。 我的脚本: #!/bin/bash read -s PWD /usr/bin/expect <<EOD spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com' expect "password" send "$PWD\n" EOD echo "you're out" 我的脚本的输出: spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no usr@$myhost.example.com usr@$myhost.example.com's password: you're out 我想我的SSH会话,只有当我退出它回到我的bash脚本。 之所以我期望使用bash,是因为我使用了一个菜单,我可以select连接到哪个单元。 谢谢
我想通过一个python脚本截图,不加介意地保存它。 我只对Linux解决scheme感兴趣,并且应该支持任何基于X的环境。
我从https://computing.llnl.gov/tutorials/pthreads/下载了以下演示。 #include <pthread.h> #include <stdio.h> #define NUM_THREADS 5 void *PrintHello(void *threadid) { long tid; tid = (long)threadid; printf("Hello World! It's me, thread #%ld!\n", tid); pthread_exit(NULL); } int main (int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int rc; long t; for(t=0; t<NUM_THREADS; t++){ printf("In main: creating thread %ld\n", t); rc = pthread_create(&threads[t], NULL, PrintHello, (void *)t); […]
我已经成功地使用下面的sed命令在Linux中search/replace文本: sed -i 's/old_link/new_link/g' * 但是,当我在我的Mac OS X上尝试它时,我得到: “命令c期望\后跟文本” 我以为我的Mac运行一个正常的BASH shell。 这是怎么回事? 编辑: 根据@High Performance的说法,这是由于Mac sed具有不同的(BSD)风格,所以我的问题是如何在BSD sed复制这个命令? 编辑: 这是一个实际的例子,导致这个: sed -i 's/hello/gbye/g' *
我正在尝试使用makefile编译一些源代码。 在makefile中有一些命令需要作为sudo运行。 当我从terminal编译源码时,一切正常,第一次sudo命令正在等待密码时,make将暂停。 一旦我input密码,恢复并完成。 但我希望能够在NetBeans中编译源代码。 所以,我开始了一个项目,并展示了netbeans在哪里可以find源代码,但是当我编译这个项目时,它会给出错误: sudo: no tty present and no askpass program specified 第一次命中sudo命令。 我已经在互联网上查找了这个问题,我发现的所有解决scheme都指向了一件事:禁用此用户的密码。 由于这里的用户是根。 我不想这样做。 有没有其他解决scheme?
我通过腻子SSH连接到Linux服务器。 我试图将其作为后台进程运行,如下所示: $ node server.js & 但是,在2.5小时之后,terminal变为不活动,并且过程中死亡。 无论如何,即使terminal断开连接,我仍然可以保持这个过程。 编辑1 实际上,我尝试了一下,但是一旦closures腻子SSHterminal或拔掉了我的networking,服务器进程就立即停止。 腻子有什么我必须做的吗? 编辑2(2012年2月) 有一个node.js模块, 永远 。 它将运行node.js服务器作为后台服务。
我试图为所有JavaScript文件运行查找命令,但是如何排除特定目录? 这是我们使用的查找代码。 for file in $(find . -name '*.js'); do java -jar config/yuicompressor-2.4.2.jar –type js $file -o $file; done
如果Linux的退出状态为0,则认为该进程已在Linux中正确完成。 我已经看到,分段错误通常会导致退出状态为11,但我不知道这是否仅仅是我工作的约定(那些失败的应用程序都是内部的)或标准。 Linux中是否有进程的标准退出码?