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 stdoutve stderrbir 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>&1yönlendirmeleri stderriçin stdout.
stty tostopTerminale 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.8ve 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, nohupve 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>&1yönlendirmeleristderriçinstdout? Belki bunu da açıklığa kavuşturmak istersiniz ... Teşekkürler.