Ö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, cd
kabuk işlevidir ve genellikle yeni bir işlem yapmazlar. type cmd
Genellikle cmd
harici bir komut mu yoksa kabuk işlevi mi olduğunu söyleyecektir . type type
Size type
kendisinin bir kabuk işlevi olduğunu söyler .
nohup
farklı 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
.
emacs
Arka planda çalışmasına rağmen pencerenin öldüğünü fark edeceksiniz . Bu varsayılan davranıştır ve nohup
tam 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
. nohup
yapar.
nohup
. Hangi kısmı karıştırdın?