JAVA ulimit,java-从linux中的jvm中查找硬打开和软打开文件限制(ulimit -n和ulimit -Hn)

我有一个问题,我需要从Java / groovy程序中找出Linux中进程的硬打开和软打开文件限制.当我从终端执行ulimit时,它将为硬打开文件限制和软打开文件限制提供单独的值.

$ulimit -n

1024

$ulimit -Hn

4096

但是,如果我以常规方式执行它,它将忽略软限制并始终返回硬限制值.

groovy> ['bash', '-c', 'ulimit -n'].execute().text

Result: 4096

groovy> ['bash', '-c', 'ulimit -Hn'].execute().text

Result: 4096

如果我缺少什么,请告诉我.我已使用ubuntu 12.04,Groovy版本:1.8.4 JVM:1.6.0_29来执行此操作.

更新:

我在Java中尝试过同样的事情.

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.Reader;

import java.io.StringWriter;

import java.io.Writer;

public class LinuxInteractor {

public static int executeCommand(String command, boolean waitForResponse, OutputHandler handler) {

int shellExitStatus = -1;

ProcessBuilder pb = new ProcessBuilder("bash", "-c", command);

pb.redirectErrorStream(true);

try {

Process shell = pb.start();

if (waitForResponse) {

// To capture output from the shell

InputStream shellIn = shell.getInputStream();

// Wait for the shell to finish and get the return code

shellExitStatus = shell.waitFor();

convertStreamToStr(shellIn, handler);

shellIn.close();

}

}

catch (IOException e) {

System.out

.println("Error occured while executing Linux command. Error Description: "

+ e.getMessage());

}

catch (InterruptedException e) {

System.out

.println("Error occured while executing Linux command. Error Description: "

+ e.getMessage());

}

return shellExitStatus;

}

public static String convertStreamToStr(InputStream is, OutputHandler handler) throws IOException {

if (is != null) {

Writer writer = new StringWriter();

char[] buffer = new char[1024];

try {

Reader reader = new BufferedReader(new InputStreamReader(is,

"UTF-8"));

int n;

while ((n = reader.read(buffer)) != -1) {

String output = new String(buffer, 0, n);

writer.write(buffer, 0, n);

if(handler != null)

handler.execute(output);

}

} finally {

is.close();

}

return writer.toString();

} else {

return "";

}

}

public abstract static class OutputHandler {

public abstract void execute(String str);

}

public static void main(String[] args) {

OutputHandler handler = new OutputHandler() {

@Override

public void execute(String str) {

System.out.println(str);

}

};

System.out.print("ulimit -n : ");

LinuxInteractor.executeCommand("ulimit -n", true, handler);

System.out.print("ulimit -Hn : ");

LinuxInteractor.executeCommand("ulimit -Hn", true, handler);

}

}

该程序的输出:

$java LinuxInteractor

ulimit -n : 4096

ulimit -Hn : 4096

为什么Java中的行为相同.是Java设置ulimit吗?

提前致谢.

解决方法:

Groovy正在其启动脚本中将此限制设置为最大.

在startGroovy:160中:

# Increase the maximum file descriptors if we can.

if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then

MAX_FD_LIMIT=`ulimit -H -n`

if [ $? -eq 0 ] ; then

if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then

MAX_FD="$MAX_FD_LIMIT"

fi

ulimit -n $MAX_FD

if [ $? -ne 0 ] ; then

warn "Could not set maximum file descriptor limit: $MAX_FD"

fi

else

warn "Could not query businessSystem maximum file

descriptor limit: $MAX_FD_LIMIT"

fi

fi

事实证明,jvm自行设置了此限制.我不确定为什么groovy也会改变它.尝试:

java -XX:-MaxFDLimit LinuxInteractor

它将禁用此行为.

标签:groovy,jvm,ulimit,linux,java

来源: https://codeday.me/bug/20191101/1982240.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算属性的setter和getter

computed的属性不仅可以写一个get方法,通过其他的值算出一个新值;同时,也可以设置set方法,通过设置一个值,来改变他相关联的值!而改变了相关联的值之后,又会引起fullName的重新计算,…

python制作远程桌面控制_Python 远程桌面协议RDPY简介

RDPY 是基于 Twisted Python 实现的微软 RDP 远程桌面协议。RDPY 提供了如下 RDP 和 VNC 支持:RDP Man In The Middle proxy which record sessionRDP HoneypotRDP screenshoterRDP clientVNC clientVNC screenshoterRSS Player目前能够找到的关于RDPY的中文介绍确实…

华为愿出售5G技术渴望对手;苹果将向印度投资10亿美元;华为全联接大会首发计算战略;腾讯自研轻量级物联网操作系统正式开源……...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

数组元素反序

和前面的字符串逆向输出有异曲同工之妙 第一位和最后一位交换位置,然后用比大小循环 那么接下来修改一下这个程序,我们接下来解释一下p的概念 画图解释: 在最前面的 定义的时候,我们将p(0)定义在了1上&…

如何计算Java对象所占内存的大小

摘要: 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论了Java对象头格式并结合JDK源码对对象头中的协议字段做了介绍,涉及内存模型、锁原理、分代GC、OOP-Klass模型等内容。…

hilbert谱 matlab,怎么在matlab中做信号hilbert边际谱分析

摘要:传统的数字滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。本文介绍了一种利用MATLAB信号处理工具箱(Signal Processing Toolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。给出了使用MAT…

时间序列数据的处理

摘要: 随着云计算和IoT的发展,时间序列数据的数据量急剧膨胀,高效的分析时间序列数据,使之产生业务价值成为一个热门话题。阿里巴巴数据库事业部的HiTSDB团队为您分享时间序列数据的计算分析的一般方法以及优化手段。演讲嘉宾简介…

saas java框架_XMReport-提供web项目Java套打解决方案

简介XMReport是国内首款支持在线编辑,维护的控件式报表产品。XMReport报表产品分为设计器与引擎两个部分,其中报表设计器是完全基于HTML5技术,提供优秀跨平台的支持,用户无需安装客户端或者插件,仅使用浏览器即可进行报…

只有程序员才能读懂的西游记

戳蓝字“CSDN云计算”关注我们哦!这其实一个有关计算机网络协议的故事一、我佛造经传极乐话说我佛如来为度化天下苍生,有三藏真经,可劝人为善。就如图中所示,真经所藏之处,在于云端。佛祖所管辖之下,有四个…

Logtail从入门到精通(四):正则表达式Java日志采集实战

摘要: 为简化日志接入门槛,我们提供了极简模式的日志解析方式(如[开启日志采集之旅]()中的介绍)。为了更好的对日志进行分析,我们还提供了其他解析方式,例如:分隔符模式、完整正则模式、JSON模式…

延时跳转php代码,PHP JS HTML ASP页面跳转代码 延时跳转代码

1.PHP延时跳转代码//跳转到浏览界面header("Refresh:1;urlmachine_list.php");//不延时header("location: http://www.baidu.com");?>2.JavaScript 跳转window.location "http://www.baidu.com";document.location "http://www.baidu.…

Vue中的条件渲染

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue中的条件渲染</title><!--引入vue.js库--><script src"../vue.js"></script> </head><body> <d…

java带参方法上机一_Java带参方法的总结

定义一个带参方法语法&#xff1a;访问修饰符 加返回类型 加方法名 加(参数列表)参数可以带有一个参数 或多个参数 还可以用数组作为参数。’《用数组作为参数》1 实例 public void show(int []scores)这个参数没有返回值调用方法实例化对象对象点方法名 (score)-(实参)实…

多隆:淘宝第一行代码撰写者的程序世界

他2000年加入阿里巴巴&#xff0c;是淘宝的创始人之一&#xff0c;是阿里内部公认的技术大牛&#xff0c;在阿里内网上他被贴得最多的标签就是“神”。在第二届研发效能嘉年华中他将在“向代码致敬&#xff0c;寻找83行代码”活动颁奖盛典中华丽现身&#xff0c;他就是“码神”…

通信工程到底要不要转专业?

戳蓝字“CSDN云计算”关注我们哦&#xff01;一年一度的大学新生报名季又开始了。各地高校陆陆续续迎来了新同学&#xff0c;有的甚至已经开始了军训。每年看到这些怀揣着梦想的年轻面孔&#xff0c;小枣君就非常感慨——时光飞逝&#xff0c;岁月无情&#xff0c;自己的青春&a…

leetcode算法题解(Java版)-16-动态规划(单词包含问题)

摘要&#xff1a; 碰到二叉树的问题&#xff0c;差不多就是深搜、广搜&#xff0c;递归那方面想想了&#xff0c;当然如果要考虑一下空间、时间&#xff0c;还需要进行剪枝和压缩处理。这题比较简单&#xff1a;判断两个树是否相等&#xff0c;可以递归的判断子树是否相等&…

php脚本启动,有没有办法启动一个PHP脚本并获得状态?

是否可以使用js在Web服务器上在后台启动php脚本并让它运行,即使您更改页面或根本不访问该站点,如果您第二次调用该php脚本也可以获取当前状态&#xff1f;这个php脚本将处理数小时的数据,每个循环的睡眠时间为X秒/分钟.如果我之前问的是可能的,如果php仅在脚本结束时才生成输出…

Vue中的列表渲染

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue中的列表渲染</title><!--引入vue.js库--><script src"../vue.js"></script> </head><body> <d…

kafkatemplate无法注入_Spring-Kafka(三)-KafkaTemplate发送消息及结果回调

我们使用KafkaTemplate.send(String data)这个方法发送消息到Kafka中,显然这个方法并不能满足我们系统的需求,那我们需要查看一下KafkaTemplate所实现的接口,看看还提供了什么方法。 当我们发送消息到Kafka后,我们又怎么去确认消息是否发送成功呢?这就涉及到KafkaTemplate…

Java小白进阶笔记(1)-重新认识Java

摘要&#xff1a; 这是偏头痛杨的第一篇原文链接&#xff0c;其中&#xff0c;在系列的第二篇开头作者布置了十道题&#xff0c;下面是我的回答&#xff08;大多是作者的文章摘录&#xff09;重新开始学习Java了&#xff0c;这也是为了以后找工作考虑。热爱的机器学习就先放一放…