Yanıtlar:
&
Uyumsuz, bir iş olarak arka planda komutu çalıştırmak için kabuk, yani o çatallı ve ayrı alt kabukta çalıştırılır, yönlendirir.
Eğer koyduğunuzda o Not &
hem - çıkış stdout ve stderr - hala edilecek ekrana basılan . Ekranda herhangi bir çıktı görmek istemiyorsanız, hem yönlendirme stdout
ve stderr
bir dosyaya:
myscript > ~/myscript.log 2>&1 &
Genellikle, hataları daha sonra analiz etmekten endişe duymuyorsanız stderr
, yeniden yönlendirerek silmek isteyebilirsiniz /dev/null
.
Komutları / komut dosyalarını aynı anda ayrı alt kabuklarda da çalıştırabilirsiniz. Örneğin;
./script1 & ./script2 & ./script3 &
Bir arka plan işi komutla bitmeden önce komut satırına geri getirilebilir:
fg <job-number>
job-number
Çalıştırarak elde edilebilir
jobs
2>&1
yönlendirmeleri stderr
için stdout
.
stty tostop
Terminale yazmaya çalıştıklarında arkaplan işlerinin askıya alınmasına neden olacağını söylemeye değeceğini düşünüyorum .
Kullandığınızda &
, işlem arka planda çalışıyor. Ancak standart çıkışı hala terminal.
Aslında, çalıştırabilir ping 8.8.8.8 &
ve find / -name '*test*' &
aynı zamanda (karma bir çıktı ile sonuçlanan), ancak çalışmayabilir ping 8.8.8.8
ve find / -name '*test*'
aynı kabuk üzerinde aynı anda.
Bir şey görmek istemiyorsanız, bunun gibi bir şey kullanın ping 8.8.8.8 &> /dev/null &
.
Ek olarak, nohup
ve hakkında bilgi edinmek isteyebilirsiniz disown
.
disown
çıktının terminale yazdırılmasını engellemez.
/dev/null
çıkışı bir yere kaydetmek yerine atmak istiyorsa, terminal çıkışını yönlendirmek için bir dosya olarak da kullanabilirsiniz . Ve I doğru olduğunu duyuyorum2>&1
yönlendirmeleristderr
içinstdout
? Belki bunu da açıklığa kavuşturmak istersiniz ... Teşekkürler.