[Gelistirici] comar sirasindaki environment ve core file yaratilmasi

Burak Çalışkan burakclskn at gmail.com
11 Haz 2010 Cum 12:44:14 EEST


Emre Erenoglu wrote On 10-06-2010 15:42:
> Merhaba,
>
> comar tarafindan servis olarak calistirilirken gocen libvirtd
> process'ini debug etmeye calisiyorum. libvirt gelistirici
> listesindekiler, environment variable'lar neler diye sordular, bir de
> core file var mi diyorlar?
>
> Ancak ben comar bu servisleri calistirirken hangi environment
> variable'lar var bunu bilemiyorum, ayrica naaptiysam core file
> yarattiramadim. ulimit falan kastim, sysctl ile core_pattern degistirdim
> gene servis calisirken core file yaratilmiyor,
>
> Yol gosterebilirseniz memnu nolurum,

1) root dizini alında mydumps diye bir klasör oluştur
  $ mkdir /root/mydumps

2) etc/security/limits.conf dosyasını aç, dosyanın sonuna
	*	-	core	unlimited
    satırını ekle. sistemi yeniden başlat. artık coredump alabilirsin. 
öntanımlı olarak çalışma dizininde oluşturulacaktır. Bunu engellemek için.
	echo "/root/mydumps/core-%p-%t-%e" > /proc/sys/kernel/core_pattern
	yaz.

3) $ cat /proc/sys/kernel/core_uses_pid komutunun 0 yazdığından emin ol.

Artık coredump'lar /root/mydumps altında pid-unixtime-executablename 
olarak oluşturulur.
(bunu her açılışta tekrarlaman gerekir, tekrarlamak istemiyorsan 
/etc/sysctl.conf'da ilgili ayarları değiştirmelisin.)

environment için hacky bir yol kullanabilirsin. comar betiğinde os'un 
import edildiğinden emin ol. Sonra, servisi çalıştırma kodundan hemen 
önce, os.system("export > /root/mydumps/env") yaz. Güncel hali ile 
sisteme kaydet. Betiği çalıştırdıktan sonra /root/mydumps/env altında 
environment bilgileri gelecektir.

iyi çalışmalar.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi