2012-11-12 16 views
40

Sistem yöneticisiyim ve sistemi temizlemek için linux komut dosyası çalıştırmam istendi.Bir linux komutunun sonunda "&" ne anlama geliyor?

komut şudur:

perl script.pl > output.log & 

yüzden bu komut bir & işareti ile sona eriyor, bunun herhangi bir özel önemi var mıdır?

Temel kabuk bilgim var ama bunu daha önce hiç görmedim.

+0

unix se bayrağı –

+0

İlk adım, "adam bash". –

+0

Üzgünüm kötü, – Dude

cevap

73

&, komutun arka planda çalışmasını sağlar. man bash kaynaktan

:

komut kontrolü operatöre & sona erdirildi, kabuk bir kabuktaki arka komutu çalıştırır. Kabuk dönüş durumudur Komutu tamamlamak bekleyin ve gelmez 0.

8

Ayrıca, "&" amacıyla bir (1) ssh bağlantıları aracılığıyla birçok süreçleri çalıştırmak için oturum kullanabilirsiniz Minimum terminal sayısını korumak için. Örneğin, dosya ayıklamak için iletileri dinleyen bir işlem var, ikinci işlem dosyaları yüklemek için iletileri dinler: "&" kullanarak her iki hizmeti tek bir terminalde, sunucum için tek bir ssh bağlantısı üzerinden çalıştırabilirim .


***** Sadece "&" aracılığıyla çalışan bu işlemlerin, ssh oturumunun kapatılmasının ardından "canlı kalmaya devam edeceğini" fark ettim. sunucuya bağlantınız kesilirse oldukça düzgün ve yararlıdır **

+0

'nohup' gibi temel şeyler hakkında bilgi sahibi oldum. –

2

Aksi belirtilmedikçe komutlar ön planı üstlenir. Tek bir kabuk oturumunda yalnızca bir "ön plan" işleminiz var. & sembolü, komutları bir arka plan işleminde çalıştırması talimatını verir ve ek komutlar için hemen komut satırına geri döner. Kabuk oturum kapatıldıktan sonra

sh my_script.sh & 

bir arka plan işlemi hayatta kalmak değil olacaktır. SIGHUP tüm çalışan işlemleri sonlandırır. Varsayılan olarak zaten. Komut süresiz uzun çalışan veya ishal ise (yani: microservice) Eğer pr-Pend gereken nohup ile Çalışıyorsa kalır böylece oturumdan bağlantısını kestikten sonra:

nohup sh my_script.sh & 

EDIT: Orada görünüyor & kullanıldığında arka plan işlemlerinin kapatılmasıyla ilgili gri bir alan olsun. Sadece kabuğunun işletim sisteminizin işletim sisteminize ve yerel yapılandırmalarınıza (özellikle CENTOS/RHEL) bağlı olarak kapandığını unutmayın: https://serverfault.com/a/117157.