精华内容
下载资源
问答
  • ulimit: core file size: cannot modify limit: Operation not permitted 问题现象 [chenjch@chen cjc]$ ul...
    ulimit: core file size: 
    cannot modify limit: Operation not permitted

    问题现象
    [chenjch@chen cjc]$ ulimit -c unlimited
    -bash: ulimit: core file size: cannot modify limit: Operation not permitted

    问题原因
    chenjch用户没有权限
    [chenjch@chen cjc]$ ulimit -a
    core file size          (blocks, -c) 0
    ......

    解决方案:
    [root@chen cjc]$ vi /etc/security/limits.conf
    chenjch hard core unlimited
    chenjch soft core unlimited

    [chenjch@chen cjc]$ ulimit -c unlimited

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29785807/viewspace-2154535/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/29785807/viewspace-2154535/

    展开全文
  • linux core file size 编程

    2015-08-15 15:46:56
    Unix系统(包括linux以及Mac OS X)在程序异常终止后,可能会产生记录当前程序运行信息的core file。可以通过命令ulimit -c n设定core file的大小n KBytes,n为0表示不产生core file,命令行中的设定仅对当前shell...

    Unix系统(包括linux以及Mac OS X)在程序异常终止后,可能会产生记录当前程序运行信息的core file。可以通过命令ulimit -c n设定core file的大小n KBytes,n为0表示不产生core file,命令行中的设定仅对当前shell有效,若要全局设定,可以在profile文件中写入上述命令。 core file的文件名在不同的系统中不尽相同。在linux系统中,在目录/proc/sys/kernel下的文件core_pattern、core_uses_pid规定了core file的文件名格式,core_uses_pid为1表示core file 文件名使用pid,为0则相反。

    可以通过setrlimit()产生core file的大小,getrlimit()获取core file大小的系统设定。编程示范如下:

    // Example of usage of getrlimit() and setrlimit()
    // luojiahu 2015.8.15
    
    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/resource.h> /* define struct rlimi_t, function getrlimit ... */
    
    int main(void)
    {
    	struct rlimit t;
    	long long softLimit = t.rlim_cur;
    	long long hardLimit = t.rlim_max;
    	
    	printf("original value of struct rlimit\nsoft limit: %lld\nhard limit: %lld\n", softLimit, hardLimit);
    	int a = getrlimit(RLIMIT_CORE, &t); /* if get succed, it returns 0, else return -1 */
    	if( !a )
    	{
    		hardLimit = t.rlim_max;
    		softLimit = t.rlim_cur;
    		printf("current system setting of core file size:\nsoft limit: %lld\nhard limit: %lld\n", softLimit, hardLimit);
    	
    	}
    	else
    	{
    		perror("get core file system setting failed!\n");
    		exit(EXIT_FAILURE);	
    	}
    
    	printf("Now setting core file size to:\nsoft limit: 10*1024\nhard limit: 100*1024\n");
    	t.rlim_cur = 10*1024;
    	t.rlim_max = 100*1024;
    	setrlimit(RLIMIT_CORE, &t);
    	struct rlimit new_t;
    	a = getrlimit(RLIMIT_CORE, &new_t); /* if get succed, it returns 0, else return -1 */
    	if( !a )
    	{
    		hardLimit = new_t.rlim_max;
    		softLimit = new_t.rlim_cur;
    		printf("current system setting of core file size:\nsoft limit: %lld\nhard limit: %lld\n", softLimit, hardLimit);
    	
    	}
    	else
    	{
    		exit(EXIT_FAILURE);	
    	}
    	
    //	while(1)
    //	{} /* do nothing */	
    	return 0;
    }
    

    在程序中设定的core file size ,只对当前进程及其子进程有效。可以编写以下程序进行测试(系统设定不产生core file,即ulimit -Sc 0)。执行程序并执行任意其他程序,分别向对应的进程发送信号kill -s signal_number pid,观察是否产生core file。

    // This program set core file size in the father process
    // fork a child process and test whether a core file will 
    // generate when program ended unnormally
    // luojiahu 2015.8.16
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/resource.h>
    #include <string.h>
    
    #define UNLIMITED 4294967295
    
    void Zero(void* t)
    {
    	if(t == NULL)
    		return ;
    	size_t size = sizeof(*t);
    
    	memset(t, 0 , size);
    }
    
    int main(void)
    {
    	unsigned long hardLimit, softLimit;
    	struct rlimit coreFileSize;
    	Zero(&coreFileSize);
    	
    	getrlimit(RLIMIT_CORE, &coreFileSize); /* get the system settings */
    	hardLimit = (unsigned long)coreFileSize.rlim_max;
    	softLimit = (unsigned long)coreFileSize.rlim_cur;
    	printf("core file system setting:\nsoft limit: %u\nhard limit: %u\n", softLimit, hardLimit);
    	
    	printf("Set soft limit to 1000 KB, hard limit to unlimited:\n");
    	coreFileSize.rlim_cur = 1000*1024;
    	coreFileSize.rlim_max = UNLIMITED;
    
    	setrlimit(RLIMIT_CORE, &coreFileSize);
    
    	pid_t pid = fork();
    	if( pid < 0)
    	{
    		perror("fork faild!\n");
    		exit(EXIT_FAILURE);	
    	}
    	else if( pid == 0)
    	{
    		printf("this is child process with pid: %d", getpid());
    	}
    	else
    	{
    		printf("this is parent process with pid %d", getpid());
    	}
    	
    	while(1)
    	{}	/* do nothing */
    	
    	return 0;
    }
    



    以下是对softEtherVPN中函数UnixSetResourceLimit的测试

    // This program test the funciont of softEtherVpN
    // function void UnixSetResourceLimit(UINT id, UINT64 value)
    
    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/resource.h>
    #include <string.h>
    
    #define UINT int
    #define UINT64 long long
    #define MIN(a, b) ( (a >= b) ? (b) : (a))
    
    void Zero(void *addr, UINT size)
    {
    	// Validate arguments
    	if (addr == NULL || size == 0)
    	{
    		return;
    	}
    
    	// KS
    //	KS_INC(KS_ZERO_COUNT);
    
    	memset(addr, 0, size);
    }
    
    
    void UnixSetResourceLimit(UINT id, UINT64 value)
    {
    	struct rlimit t;
    	UINT64 hard_limit;
    
    /*/	if (UnixIs64BitRlimSupported() == false)
    	{
    		if (value > (UINT64)4294967295ULL)
    		{
    			value = (UINT64)4294967295ULL;
    		}
    	}
    */
    	Zero(&t, sizeof(t));
    	getrlimit(id, &t);
    
    	hard_limit = (UINT64)t.rlim_max;
    
    	Zero(&t, sizeof(t));
    	t.rlim_cur = (rlim_t)MIN(value, hard_limit);
    	t.rlim_max = (rlim_t)hard_limit;
    	setrlimit(id, &t);
    
    	Zero(&t, sizeof(t));
    	t.rlim_cur = (rlim_t)value;
    	t.rlim_max = (rlim_t)value;
    	setrlimit(id, &t);
    }
    
    int main(void)
    {
    	struct rlimit t;
    	getrlimit(RLIMIT_CORE, &t);
    	printf("core file size system setting:\nsoft limit: %lld\nhard limit: %lld\n", (long long)t.rlim_cur, (long long)t.rlim_max);
    	printf("Call functon UnixSetResourceLimit(0)\n");
    	UnixSetResourceLimit(RLIMIT_CORE, 0);
    
    	getrlimit(RLIMIT_CORE, &t);
    	printf("after funciont call core file size:\nsoft limit: %lld\nhard limit: %lld\n", (long long)t.rlim_cur, (long long)t.rlim_max);
    
    	return 0;
    }
    



    展开全文
  • core file size changed  今天设置一个limits.conf 下的一个参数:   core file size (blocks, -c) 0  设置之前,看了一下:  ulimit -c  0   类似于设置限定文件数,修改 /etc/

    目的:修改core file size

    1. 查看当前的系统资源限制 ulimit -a

    [root@10gr2 ~]# 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) 16061
    max locked memory       (kbytes, -l) 32
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 10240
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 16061
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited

    【说明】:core file size          (blocks, -c)  0  这项也就是关于 core file size 的限制的内容现在是0 也就不产生core file size ,现在想将这个值改为2GB

    2. 在/etc/security/limits.conf 中加入下列的内容对 core file size 进行限制

    * soft   core 4194304
    * hard core 4194304

    3. 退出当前登陆,重新登陆,通过命令 ulimit -c 进行查看设置是否成功

    [root@10gr2 ~]# ulimit -c
    0

    【说明】:设置只对当前的登陆有效,并不是对每次的登陆都生效,那么说明更改不成功

    4. 查找原因,研究了一下相关的文档,有三个因素:

    In /etc/profile (Redhat)

    # No core files by default
    # ulimit -S -c 0 > /dev/null 2>&1

    In /etc/init.d/functions (Redhat)

    # make sure it doesn't core dump anywhere unless requested

    #ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0} >/dev/null 2>&1

    这上面两个文件的ulimit 命令注释掉(不然登录后会系统执行一遍又将其改成0)

    5. 修改完上面的两项之后,保存,并且退出当前登陆,重新登陆 通过命令 ulimit -c 查看

    [root@10gr2 ~]# ulimit -c
    4194304

    修改成功!

    6. 当然,还有第三种情况,就是写到当前用户的bash_profile 里了,同样如果bash_profile 里如果有 ulimit -c 0 的话,也需要去掉,否则用户重新登陆时,都会被置为0

    --END--

    展开全文
  • 一、问题描述 使用普通用户执行某个软件加载环境变量时报错 -bash: ulimit: core file size: cannot modify limit: O...
    一、问题描述
    使用普通用户执行某个软件加载环境变量时报错

    1. -bash: ulimit: core file size: cannot modify limit: Operation not permitted
    二、问题分析
    查看环境变量文件中有段
    1. ulimit -c unlimited
    直接使用普通用户执行ulimit -c unlimited也会报相同错误。
    三、报错原因
    普通用户没有权限修改系统文件权限
    四、解决方案
    在limit.conf文件最后添加:
    1. vi /etc/security/limits.conf
    2. ···
    3. zrd hard core unlimited
    4. zrd soft core unlimited
    五、验证
    再用普通用户执行ulimit -c unlimited没有报错,成功加载环境变量

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31427447/viewspace-2154607/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/31427447/viewspace-2154607/

    展开全文
  • 现象说明:突然发现一台测试机器的java程序莫名其妙地没了,但是没有core dump!这就需要打开服务器的core文件生成的功能了,(即core dump文件),方便程序调试。 1)core文件简介 core文件其实就是内存的映像,当...
  • linux 上设置core file size

    千次阅读 2014-09-25 11:30:16
    suse-linux上对于ulimit的设置,是以会话为单位的,因此ya
  • Original Site: https://www.akadia.com/services/ora_enable_core.html ...In most Linux Distributions core file creation is disabled by default for a normal user. However, it can be necessary t...
  • ulimit -c 999有什么用呢? 一句话: 设置core文件大小的上限(999KB), 让程序core dump的时候能产生core 用SecureCRT连接linux, ... -bash: ulimit: core file size: cannot modify limit: Operation not permitte
  • root@ubuntu:/tmp# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) 90000
  • java.lang.UnsatisfiedLinkError: dlopen failed: file offset for the library "libopencv_core.so" >= file size: 0 >= 0 file size: 0 >= 0 原因so文件损坏,重新生成一下就可以 ...
  • 执行 ulimit 会看到: ...core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 63011 max locked mem
  • 在centos系统下进行,首先通过ulimit -a查看系统的一些参数设置: [root@localhost blktrace100G]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority ...
  • File size limit exceeded (core dump)

    千次阅读 2009-04-02 15:24:00
    最近服务器老是某个服务启动不了,看到出错是File size limit exceeded根据这个词查看了一下,有如下信息:引用log文件中的store.log超过2G时就会报这个错误查看了一下log,的确文件更好是2G,删掉log,然后禁止log...
  • corefile配置

    千次阅读 2011-12-09 14:08:10
    转自http://hi.baidu.com/jrckkyy/blog/item/2562320a5bdbc534b1351d95.html 查看限制情况 ulimit -a 可以看到如下信息 ...core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file
  • File Size(4.12)

    2019-10-05 21:33:35
    The st_size member of the stat structure contains the size of the file in bytes. This field is meaningful only for regular files, directories, and symbolic links. Solaris also defines the file...
  • `File size limit exceeded (core dumped)` 问题: 解压文件,结果出现 File size limit exceeded (core dumped) 解决: 使用命令 ulimit -f 1024000 将限制file size 改大就可以了。
  • 获取 MySQL 崩溃时的 core file

    千次阅读 2017-03-23 22:40:01
    http://xiezhenye.com/2015/05/获取-mysql-...对于一般进程,要让进程崩溃时能生成 core file 用于调试,只需要设置 rlimit 的 core file size > 0 即可。比如,用在 ulimit -c unlimited 时启动程序。 对 MySQL 来
  • core file出现吧

    千次阅读 2006-10-03 12:55:00
    我的debian默认的配置是不会产生...查看所有限制,其中包括core file size,我机器显示的是0,单位是blocks,如果是1024bytes,当然core不会被dump出来。ulimit -c 1024。调整core file size。ok,程序暴掉时也有提示了
  • Corefile Dump

    2020-10-27 10:15:09
    背景 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存...使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。若ulimit -c unlimited,则表示core文件的大小不受

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 179,993
精华内容 71,997
关键字:

corefilesize