Rozpocznij nowy proces bez blokowania terminala


47

Czy można to zrobić? Na przykład, jeśli uruchomię „ gedit tifatul.txt” za pomocą wiersza poleceń, mój terminal zostanie zablokowany i nie będę mógł wprowadzić innych poleceń w tym terminalu przed wyjściem z programu gedit. Czy mogę uruchomić program (jak gedit) bez blokowania terminala? Myślę, że w systemie Windows można to zrobić jak „ start notepad tifatul.txt


Co masz na myśli przez zablokowane?

@PedroDiniz oznacza, że ​​nie mogę wpisać innego polecenia do terminala, gdy uruchomiony jest gedit. Jeśli masz system Windows, wypróbuj różnicę między uruchomieniem notepad(zablokowane) a start notepad(niezablokowane)
TifatulS 28.04.13

Odpowiedzi:


68

Po prostu dodaj &na końcu polecenia. To sprawia, że ​​nowy proces działa w tle i możesz kontynuować korzystanie z terminala. Na przykład:gedit new_file.txt &


Nawiasem mówiąc, czy znasz dokumentację dotyczącą tego zachowania? Czy to tylko dla gedit?
TifatulS

1
Ta funkcja procesu w tle jest zapewniana przez powłokę, więc nie działa ona tylko dla gedit, ale dla każdego polecenia uruchamianego w powłoce.
Daniel Yuste Aroca

tak, dzięki za odpowiedź. Miałem się z tym pogodzić, ale system wymaga ode mnie następnych kilku minut
TifatulS

Zaakceptowane i ocenione :) Przy okazji, jak nazywa się ta funkcja?
TifatulS

Ta funkcja nazywa się działaniem procesów w tle lub działaniem procesów w tle.
Daniel Yuste Aroca

21

Chciałbym ci polecić nohup gedit filename &. Po prostu gedit filename &ponosisz ryzyko przypadkowego zamknięcia terminala i utraty edycji. Jeśli nie lubisz nohup.outtworzenia za każdym razem, po prostu przekieruj dane wyjściowe:

nohup gedit filename > /dev/null &
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.