سؤال

ينسخ:

توليد تفريغ الأساسية في لينكس

أحاول إنشاء ملف تفريغ أساسي في "إصدار Fedora Core 3 (Heidelberg)".

[root@testserver test_core_dump]# uname -a

Linux testserver 2.6.12-1.1381_FC3 #1 الجمعة 21 أكتوبر 03:46:55 بتوقيت شرق الولايات المتحدة 2005 i686 أثلون i386 جنو/لينكس

انا اتابع هذا لإنشاء مقالب الأساسية.

المشكلة هي أن /proc/sys/kernel/suid_dumpable غير موجود في هذا الإصدار.لقد قمت أيضًا بالتحقق هنا /proc/sys/fs/suid_dumpable، لكن suid_dumpable غير موجود.

1) هل هناك أي حل لهذا؟2) هل أفتقد شيئًا هنا؟

هل كانت مفيدة؟

المحلول

والتعليمات التي تتبع هي ببساطة إلى الإفراط في ركوب س / ق القيود التي قد تمنعك من الحصول على تفريغ الأساسية.

وتوليد تفريغ الأساسية هي عملية تافهة، يمكنك إرسال إشارة إلى العملية كما يلي

kill -ABRT pid_of_process

وهناك الكثير من الامور ولكن قد منع هذا من الحدوث، ولكن عليك أن تحاول هذا أولا ومعرفة ما اذا كان ينتج تفريغ الأساسية في الدليل الحالي. إذا كان البرنامج تفاعلي ولا اعتراض استقال signnal فإنك قد تكون قادرة على التسبب الأساسية لتفريغ عن طريق إرسال SIGQUIT لهذه العملية، وهذا هو عادة بد أن CTRL - \

والمنطقة كنت تواجه مشاكل مع في الوثيقة المشار إليها تشير إلى عملية تشغيل setuid / setguid إذا عملية ليست قيد التشغيل في أي من تلك الأوضاع ثم يمكنك تجاهل هذه الخطوة. (يمكنك معرفة ما إذا كان يتم تشغيل عملية setuid / setguid من خلال النظر في أذونات الملف للبرنامج وفحص بت setuid وsetguid هذا يمكن أن يتم ذلك عن طريق إصدار ليرة سورية قيادة -l وتبحث عن الصورة في موقف 4TH (setuid) أو موقف 7TH (setgid) (على سبيل المثال من setuid أدناه)

و-r-sr-xr-x 1 root wheel 57616 28 Oct 03:28 /usr/bin/login

هل حاولت لتوليد الأساسية دون استخدام الخطوة التي لا يعمل، وأنه لم يعمل؟

وسوف تحتاج إلى أن تكون قادرا على الكتابة في الدليل أن عملية قيد التشغيل في، أو الدليل المحدد لالأساسية مقالب إذا لم يكن الدليل الحالي. تشغيل كجذر قد حل القضايا الأذونات.

نصائح أخرى

لست متأكدًا من أنني أفهم ما تريد.تتحدث صفحة الويب التي تشير إليها عن تمكين عمليات التفريغ الأساسية، وليس تشغيلها.لا تقلق بشأن sysctl المفقود - فأنظمة Linux الخاصة بي أيضًا لا تحتوي عليه ويمكنني بكل سرور تفريغ النوى في كل مكان :) هل تريد إنشاء تفريغ أساسي لعملية معينة؟

وبصرف النظر عن SIGABRT، يمكنك أيضًا تجربة استخدام gcore:

اسمgcore - إنشاء ملف أساسي لعملية قيد التشغيل

ملخصgcore [-o filename] pid

وصفيقوم gcore بإنشاء ملف أساسي للعملية المحددة بواسطة معرف العملية الخاص به، pid.افتراضيًا، تتم كتابة الملف الأساسي إلى core.pid، في الدليل الحالي.

وهذا هو نسخة مكررة من هذا السؤال . و تقبل الجواب ، وفي واحدة مع أكبر عدد من الأصوات أقترح ما يلي:

في باش:

ulimit -c unlimited

ووإلى tcsh:

limit coredumpsize unlimited

في هذه الحالة، إذا تعطل البرنامج، سيتم إنشاء تفريغ الأساسية في ملف يسمى core حيث تم تشغيل البرنامج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top