Terminalden bir komutu bloke etmeden nasıl çalıştırabilirim?


43

Terminalden Ubuntu'da birçok program çalıştırıyorum, ancak bir program açtıktan sonra terminali kullanmaya devam etmek istiyorum. Programları arka plana nasıl koyabilirim ki başka bir pencere açmak zorunda kalmam?

Yanıtlar:


60

Bir terminal programını çalıştırmanın ve terminali kullanmaya devam etmenin farklı yolları vardır:

  • Başka bir terminal sekmesini açabilirsiniz (sağ tıklayın, ardından "Yeni Sekmeyi Aç" ı seçin).
  • &Çalıştırdığınız komuta ekleyebilirsiniz . Hata mesajları gibi terminale metin çıkışı görmeyeceğinizi unutmayın.
  • Yazabilirsiniz Ctrl- Zve sonra çalıştırın bg. Bu çalışan ile aynı etkiye sahiptircommand &
  • Koşabilir nohup command &ve sonra enter tuşuna basın. ( Ccpizza için aşağıdaki yorumları görün.)

Ancak, pres Alt- F2hayır terminali hiç yoktur - ve sonra GUI adresinin komutunu çalıştırarak genellikle en iyi yöntem olarak kabul edilir!

Kullanırken &(değil nohup), terminali kapatmanın, daha sonra çalışmadıkça uygulamayı sonlandırmaya devam edeceğini unutmayındisown .

EDIT: Kullanımınohup bazen ana klasörünüzde küçük dışkılar bırakacak gibi görünüyor . Normalde terminale ne kaydedilmiş olacağı açık bir şekilde ~ / içindeki bir dosyaya kaydedilir.

~~

Bir programı arka planda çalıştırmanın basit bir yolu program-name & disown, sizi süreci öldürmeden kapatılabilecek bir terminale düşürmektir.


4
Terminal kapatıldıktan sonra alt sürecin ölmesini önlemek için uygulamanızı olarak başlatabilirsiniz nohup firefox&.
ccpizza

Güzel! Bunu bilmiyordum (ancak deneme sonrasında, terminal hala "tıkanmış")!
WindowsEscapist

'bloke edilmedi', sadece 'bloke edilmiş' görünüyor, bir kez enter yazarsanız bir bilgi istemi alacaksınız.
ccpizza

Ah, daha önce farketmedim.
WindowsEscapist

program-name & disowngüzel bir çözüm
Doktor Henry,

8

Komutu bir & sonra ile çalıştırabilirsiniz.

Örneğin:

yıldırım kuşu &

Daha fazla bilgi için buraya bakınız .


Bu sadece terminal penceresini kapatana kadar çalışır, program kapanır pencereyi kapattığınızda
kurdtpage

6

Herhangi bir günlük mesajı almayacağınız setsidiçin programı yeni bir oturumda çalıştırmak için kullanabilirsiniz &>/dev/null.

Yani böyle olurdu

setsid program-name &>/dev/null


Güzel. Kullanıcı oturumu kapat ve geçerli oturum kapandığında işlem devam etmelidir.
Mikhail Moskalev

1

Kullanılması screenkomutu, tek bir pencere ve musluk kullanarak birden çok terminal oturumları açabilirsiniz

apt-get install screen (On Debian based Systems)

yum install screen (On RedHat based Systems)

screen (yeni ekrana başla)

[Your command]

Ctrl+A d ekrandan ayrılmak ... ve benzeri

https://linuxize.com/post/how-to-use-linux-screen/


0

Bunu gibi sanal bir terminalde çalıştırabilirsiniz tmux(ya da screenartık korunmadığını duydum)

# This ataches your terminal to a virtual terminal
tmux
run_your_command
# This detaches your virtual terminal (previous command can be running)
CTRL-b d
run_other_commands # on your terminal
# re-attach the virtual terminal to see the status of run_your_command
tmux a

tmux Gibi çok daha fazlasını yapabilirsiniz:

  • sanal terminalinizi başka bir terminale taşıyın
  • sanal terminali birkaç terminalde paylaşın (diğer kullanıcılar ne yaptığınızı görebilir ;-))
  • Birkaç terminale sahip olmak için "ekranı" bölün.
  • ...

https://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.