Bir işlemi arka plana nasıl taşıyabilir ve çıktısını nasıl sustururum?


11

Diyelim ki terminalde bir işlem başlattım ve çalışırken standart hataya çıktı gönderir. Süreci arka plana taşımak ve aynı zamanda susturmak istiyorum.

Sürecini durdurma ve kullanarak tekrar başlatmadan bunu yapmanın bir yolu var mı &ve > /dev/null 2>&1? Ben de gerçekleştirir bg ve hedef sürecin çıkış tanımlayıcıları değiştirebilir bazı komut olup olmadığını merak ediyorum .

Yanıtlar:


9

Çok geç. Bir işlem başlatıldıktan sonra , shell'in işlem dosyası tanımlayıcıları üzerinde artık denetimi yoktur, böylece bir shell komutuyla sessizleştiremezsiniz .

Yalnızca deneyebilirsiniz öldürmek bir SIGHUPsüreç. İşleminiz doğru bir şekilde işliyorsa, tty'yi denetlemekten ayrılmalıdır . Neyse ki, birçok yazılım doğru şekilde işlemez ve ölür.


işlemi arka plana koymak için CTRL + Z yapamaz mısınız? süreci susturmaz ve çıkış yaparsanız, süreci de öldürdüğünü düşünüyorum.
Roy Rico

1
@RoyRico, öldürme bir SIGSTOPbir işleme (veya Dediğiniz gibi CTRL + Z yapıyor ) bir süreç susturmak etmez. Bir işlemi durdurur!
andcoz

5

Bir terminalden çalıştırılan işlemin terminaline stdin, stdout ve stderr bağlanır ve bu terminal üzerinde kontrol sahibi olmadan bu konuda hiçbir şey yapamazsınız ... Normalde. Ama bunu yapmanıza izin veren bazı zor araçlar var. Bu örneğe bir göz atın . Ve rettyburada belirtildiği gibi diğer programlar .


3

Andcoz'la çıktıyı susturmak için çok geç olduğuna katılmıyorum.

İşlemin ön planda çalıştığını varsayarsak, işlemi Ctrl-Zaskıya almak için kullanın . Bunu yaptığınızda iş numarası ve işlem kimliği bildirilir. bg %1(1. iş için) düğmesini kullanarak işlemi arka plana taşıyabilirsiniz . Bu, işlemi arka plana taşımasına rağmen, çıktıyı susturmaz. Çıktıyı susturmak için gdbtüm çıktıları yeniden yönlendirmek için kullanabilirsiniz /dev/null.

Bu daha önce /programming/593724/redirect-stderr-stdout-of-a-process-after-its-been-started-using-command-lin/593764#593764 adresinde çok güzel açıklanmıştır .


0

Yine başka bir komut satırı aracı detach. En son sürüm pidfiles yazmayı, stdin, stdout ve stderr için dosyaları kullanmayı ve ön planda çalışmayı destekler. (Web sitesinde detachde benzer araçlar tartışılmaktadır.)

http://inglorion.net/software/detach/

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.