,Bir işlemin ne olduğunu araştırmak nasıl? Bu proc/PID dizinden/dan kontrol edilebilir biliyorum
ama,
herhangi biri bana yol gösterebilir nasıl bilmiyorum?,Bir işlemin ne olduğunu araştırmak nasıl? Bu proc/PID dizinden/dan kontrol edilebilir biliyorum
ama,
herhangi biri bana yol gösterebilir nasıl bilmiyorum?Bir işlem tarafından yapılan sistem çağrılarını izlemek istiyorsanız, strace numaralı telefonu arayın.
Bir php programını izlemek için arıyorum. Yardım bu mu? – omg
En azından PHP yorumlayıcısının hangi sistemi çağırdığını size söyleyecektir. PHP betiğinin yaptıklarına bağlı olarak yararlı olabilir veya olmayabilir. Aksi halde PHP hata ayıklamalarına bakmak isteyebilirsiniz. –
Bir xmpp robotunu izliyorum – omg
strace
komutuna güveniyorum. Ancak, yalnızca sistemin hangi süreci çağırdığını söyler. Ancak bu yeterli olabilir ...
Bir çalışma işlemini çalışma zamanında strace
'a bağlamak mümkündür.
Açıkçası, gdb
da kullanılabilir.
Bir PHP programının ne yaptığını anlatmak için strace'yi nasıl kullanacağınız konusunda bir demo yapabilir misiniz? – omg
Ne tür bilgi arıyorsunuz?/Proc/pid altındaki sahte dizinler oldukça açıklayıcı olmalıdır. Aradığın şeye gerçekten bağlı. Genel mem ve cpu kullanımı için, üstteki gibi bir araç muhtemelen yapılandırılmış bir aralık için güncellendiğinden muhtemelen daha iyidir.
Bir xmpp robotunu izliyorum, süreç hala canlıyken kolayca çevrimdışı oluyor, sebebini araştırıyorum. – omg
Genellikle strace bu sorunun cevabıdır. En basit yöntem, örneğin doğrudan bir komut kullanarak strace çalıştırmaktır: Bu zaten PHP gibi süreçleri çalıştırmak için çalışmıyor
[email protected]:~$ strace ls
execve("/bin/ls", ["ls"], [/* 16 vars */]) = 0
brk(0) = 0x9fa8000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f0a000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
. Neyse ki, -p parametresini kullanarak varolan bir sürece strace ekleyebilirsiniz. Örneğin: yanı -f parametre kullanmak gerekebilir diğer işlemler spawn deamon`lar için
[email protected]:~$ strace -p 3761
Process 3761 attached - interrupt to quit
select(16, [5 7 8], NULL, [5 7 8], {0, 580000}) = 0 (Timeout)
alarm(0) = 62
rt_sigprocmask(SIG_BLOCK, [ALRM], [], 8) = 0
rt_sigaction(SIGALRM, {SIG_DFL}, {0x809a270, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
.
Her zaman yararlı strace dışında, ltrace'a bakmak isteyebilirsiniz. ltrace, strace'e benzer, ancak sistem çağrıları yerine kütüphane çağrılarını gösterir. Bir örnek:
[one;~]-6> ltrace ls
__libc_start_main(0x804e5f0, 1, 0xbfdb7254, 0x8059a10, 0x8059a00 <unfinished ...>
setlocale(6, "") = "LC_CTYPE=en_GB.UTF-8;LC_NUMERIC="...
bindtextdomain("coreutils", "/usr/share/locale") = "/usr/share/locale"
textdomain("coreutils") = "coreutils"
__cxa_atexit(0x8051860, 0, 0, 0xb7f65ff4, 0xbfdb71b8) = 0
isatty(1) = 1
getenv("QUOTING_STYLE") = NULL
ayrıca çıkış beklediğinizden fazla ayrıntılı olabilir böylece iç libc'nin adil bir miktar, hem de aramaları göreceksiniz unutmayın.
Ayrıca, izlediğiniz kişinin alt süreçlerini takip edecek olan strace -f'yi öğrendiğimde benim için de çok yardımcı oldu. Son olarak, strace -f'nin solundaki sayılar için '/ proc/
Bu, serverfault.com'a ait, (dosya sistemi aracılığıyla bir işlemin izlenmesi isteniyor) düşünüyorum. Ayrıca, size daha iyi yardımcı olmak için bir süreç hakkında izlemek istediğiniz özellikle bize anlatmak gerekir –
Bir php programı izlemek için arıyorum – omg
Monitör hakkında ne olduğunu ... onun bellek tüketimi, onun ağ etkinliği, denir ... –