কোর ডাম্প ফাইলের অবস্থান (এবং নাম) কীভাবে সেট করবেন?


17

আমি সেন্টোস 6 এ আছি, আমি যে অ্যাপ্লিকেশনটি বিকাশ করছি তার জন্য কোর ডাম্প সক্ষম করার চেষ্টা করছি। আমি রেখেছি:

ulimit -H -c unlimited >/dev/null
ulimit -S -c unlimited >/dev/null

আমার বাশ প্রোফাইলে, তবে একটি কোর ডাম্প এখনও তৈরি হয়নি (নতুন টার্মিনালে)।

আমি আমার /etc/security/limits.conf কেও পরিবর্তন করেছি যাতে সমস্ত ব্যবহারকারীর জন্য নরম সীমা শূন্য থাকে।

আউটপুট হওয়ার জন্য আমি কীভাবে মূল ফাইলগুলির অবস্থান সেট করব? আমি অবস্থানটি নির্দিষ্ট করতে এবং ফাইলের নামের অংশ হিসাবে ডাম্পটি তৈরি হওয়ার সময় সংযোজন করতে চেয়েছি?


1
এই সহায়ক হতে পারে stackoverflow.com/a/16048288/2808351
dhag

উত্তর:


27

CentOS 6 এ কোর ডাম্পগুলির অবস্থান নির্ধারণ করতে আপনি সম্পাদনা করতে পারেন /etc/sysctl.conf। উদাহরণস্বরূপ, যদি আপনি কোর ডাম্পগুলি চান /var/crash:

kernel.core_pattern = /var/crash/core-%e-%s-%u-%g-%p-%t

ভেরিয়েবলগুলি যেখানে:

% e হ'ল ফাইল নাম
% g হল এই প্রক্রিয়াটি
% p এর অধীনে চলছিল
% s প্রক্রিয়াটির পিড হ'ল সিগন্যালটি যে ডাম্প
% t এর কারণ ঘটেছে সেই সময় ডাম্প ঘটেছে
% ইউড প্রক্রিয়াটি অধীনে চলছে

এছাড়াও আপনি যোগ করতে হবে /etc/sysconfig/init

DAEMON_COREFILE_LIMIT='unlimited'

এখন নতুন পরিবর্তনগুলি প্রয়োগ করুন:

$ sysctl -p

তবে এই পথে একটি সতর্কবাণী রয়েছে। যদি কার্নেল প্যারামিটার কার্নেল.কো_প্যাটার্নটি সর্বদা পুনরায় সেট করা হয় এবং পুনরায় বুট করার সময় ওভাররাইট করা হয় তবে নিম্নলিখিত মানটি ম্যানুয়ালি নির্দিষ্ট করে দেওয়া হয় /etc/sysctl.conf:

|/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e

সংক্ষেপে বলতে গেলে যখন abrtd.serviceশুরু হয় kernel.core_patternসিস্টেম ইনস্টল দ্বারা স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে abrt-addon-ccpp। এটি সমাধানের দুটি উপায় রয়েছে:

  1. কনফিগারেশন ফাইলে সেটিং DumpLocationবিকল্প /etc/abrt/abrt.conf। গন্তব্য সংকলন DumpLocation সেটিং = দ্বারা নির্দিষ্ট করা যেতে পারে /var/crashযে /etc/abrt/abrt.confকনফিগারেশন ফাইল, এবং sysctl kernel.core_pattern'প্রদর্শিত র মান একটি একই কিন্তু আসলে কোর ফাইল অধীনে ডিরেক্টরির করার জন্য তৈরি করা হবে /var/crash

    এছাড়াও আপনি যদি SELinux সক্ষম করে থাকেন তবে আপনাকে চালাতে হবে:

    $ semanage fcontext -a -t public_content_rw_t "/var/crash(/.*)?"  
    $ setsebool -P abrt_anon_write 1
    

    এবং শেষ অবধি abrtd.service:

    $ service abrtd.service restart
    
  2. বন্ধ পরিষেবা বন্ধ করুন। kernel.core_patternওভাররাইট করা হবে না। - (আমি কখনও পরীক্ষা করিনি)।


1
দুর্দান্ত উত্তর। এটি লক্ষণীয় যে EFI সিস্টেমে আপনি সিস্টেম ফ্ল্যাশ একটি ডাম্প পেতে পারেন।
মাইক্রজারভ 8

0

ব্যাসিবক্সে কোর ডাম্প জেনারেট করার জন্য আমরা আঞ্চলিক স্ক্রিপ্টের নীচে প্যারামিটারগুলি যুক্ত করতে পারি যা আমাদের এক্সিকিউটেবল চালায়। সুতরাং আমরা যখনই সফ্টওয়্যার এবং রফতানির পরিবেশের ভেরিয়েবলগুলি আরম্ভ করি আমরা কোনও ক্র্যাশ দেখিলে আমরা স্ক্রিপ্টে নীচের লাইনগুলি অনুলিপি করতে পারি পাশাপাশি কোর ডাম্প করতে পারি।

ব্যাসিবক্সে কোর ডাম্পের অবস্থান নির্ধারণের জন্য আপনি প্রক ফাইল ফাইলটি ব্যবহার করে মূল ফাইল পাথ সেট করতে পারেন। উদাহরণস্বরূপ, আপনি যদি কোর ডাম্পগুলিতে চান তবে /tmp/crash/corefiles:

mkdir -p /tmp/crash/corefiles
chmod 775 /tmp/crash/corefiles
echo "/tmp/crash/corefiles/%e.%s.core" > /proc/sys/kernel/core_pattern

ভেরিয়েবলগুলি যেখানে:

% e হ'ল ফাইল নাম
% g হল এই প্রক্রিয়াটি
% p এর অধীনে চলছিল
% s প্রক্রিয়াটির পিড হ'ল সিগন্যালটি যে ডাম্প
% t এর কারণ ঘটেছে সেই সময় ডাম্প ঘটেছে
% ইউড প্রক্রিয়াটি অধীনে চলছে

এছাড়াও, আপনাকে মূল ফাইলের আকারটি সেট করতে হবে, নীচের কমান্ডটি মূল ফাইলের আকারটিকে সীমাহীনতে সেট করে

ulimit -c unlimited

এখন আমরা যে প্রক্রিয়াটি ব্যবহার করে পরীক্ষা করতে পারি তার মধ্যে প্রতিটি থ্রেডের জন্য মূল ফাইলের আকারের সেটটি পরীক্ষা করতে

cat /proc/<PID>/limits

উপরের কমান্ডের আউটপুট:

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        unlimited            unlimited            bytes     
Max open files            10000                10000                files     
Max address space         unlimited            unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             31868                31868                processes 
Max locked memory         65536                65536                bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       31868                31868                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us      

উপরের আউটপুট থেকে আমরা দেখতে পাচ্ছি সর্বোচ্চ কোর ফাইলের আকার সীমাহীনতে সেট করা আছে।

আরও তথ্যের জন্য দয়া করে এই লিঙ্কটি দেখুন। লিনাক্স অ্যাপ্লিকেশন ডিবাগিং কৌশল / কোর ফাইল

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.