Öncelikle, bir komutu her çalıştırışınızda, koştuğunuzda &veya çalıştırmasanız da, yeni bir işlem gerçekleştirirsiniz . &yalnızca arka planda çalıştırdığınız anlamına gelir.
Bunun çok doğru olmadığını unutmayın. Bazı komutlar, cdkabuk işlevidir ve genellikle yeni bir işlem yapmazlar. type cmdGenellikle cmdharici bir komut mu yoksa kabuk işlevi mi olduğunu söyleyecektir . type typeSize typekendisinin bir kabuk işlevi olduğunu söyler .
nohupfarklı bir şey. Yeni işlem görmezden gelmesini söyler SIGHUP. Ana kabuk kapatıldığında çekirdek tarafından gönderilen sinyaldir.
Sorunuzu cevaplamak için aşağıdakileri yapın:
- run
emacs & (varsayılan olarak ayrı bir X penceresinde çalışmalıdır) .
- üst kabukta koşun
exit.
emacsArka planda çalışmasına rağmen pencerenin öldüğünü fark edeceksiniz . Bu varsayılan davranıştır ve nohuptam olarak bunu değiştirmek için kullanılır.
Arka planda bir iş yürütmek ( &ya da bg, diğer kabukların da diğer sözdizimlerine sahip olmaları gerekir) modern sistemlerin yeteneklerinden çoklu görevlere kadar uzanan bir kabuk özelliğidir. Bunun yerine lansmanı istediğiniz her programda, çağdaş kabukları için yeni bir kabuk örneğini bölmek ait ( bash, zsh, ksh, ...) programların (veya bir listesini yönetmek yeteneğine sahip olacak işler ). Bir seferde sadece bir tanesi ön planda olabilir , bu da kabuk odağını alır. Birinin arka planda ön planda ve birinde çalışan bir süreç arasındaki farklar (ana bir acess olma konusunda daha fazla genişletmek isterdim stdin/ ' stdout).
Her durumda, bu, çocuk sürecinin tepki verme şeklini etkilemez SIGHUP. nohupyapar.
nohup. Hangi kısmı karıştırdın?