grrate boru hattı


30

straceOluk açmaya çalışıyorum cczeve boru beklendiği gibi çalışmıyor.

Test etmek için çalıştırdığım komut satırı sudo strace -p $(pgrep apache2) | grep openve grep'i yok sayarak tüm satırlar çıktı.

straceBu davranışa neden olan özel bir şey var mı ?

Yanıtlar:


48

straceizlerini standart çıktıya değil, standart hataya yazdırır. Bunun nedeni, programın standart çıktısını yeniden yönlendirmek istemek, ancak genellikle strace'ın stderr'i ve programın stderr'ının karışık olduğu bir problem değildir.

Bu yüzden, onu stracealabilmek için stderr komutunu stdout'a yönlendirmelisiniz :

sudo strace -p $(pgrep apache2) 2>&1 | grep open

bunun dışında gerçekten aradığın şey

sudo strace -p $(pgrep apache2) -e open

işe yarıyor!! teşekkür ederim! - Aslında sadece openaramalara bakmaya çalışmıyordum , sadece bir örnek olarak, gerçekten yapmaya çalıştığım şeyin renk vurgulaması olduğunu söyledim
Andrei

strace: Invalid process id: '-e'Son emir ile geliyorum . 4.8 sürümündeyim. 2010-03-30.
Elijah Lynn

Ahh, aslında httpd (RHEL) var.
Elijah Lynn

1
Değiştir @ElijahLynn apache2Eğer ilgilendiğiniz sürecin adıyla emin olun. pgrepBaskılar tek PID, aksi birini seçmek ve çalıştırmak meselasudo strace -p 1234 -e open
Gilles 'SO dur olma kötülük'

@Andrei, vimrenk sözdizimi vurgulamayı kullanmaya ne dersiniz ? strace $CMD 2>&1 > /dev/null | vim -c ':set syntax=strace' -.
Pablo A,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.